当前位置:文档之家› 湖北师范学院2010年专升本《C语言程序设计》试卷

湖北师范学院2010年专升本《C语言程序设计》试卷

湖北师范学院2010年“专升本”招生考试《C语言程序设计》试题一、选择题(本题共20小题,每题2分,共40分)1.以下不合法的用户标识符是()。

A)S2_KEY B)Int C) 4s D)_char 2.设有 int x=11; 则表达式 (++x)%3 的值是()。

A)0 B)1 C)2 D)33.C语言源程序名的后缀是()。

A).exe B).cp C).obj D).c4.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是()。

A)scanf("%d",a,b,c); B)scanf("%d%d%d",a,b,c);C)scanf("%d",p); D)scanf("%d",&p);5.C语言中运算对象必须是整型的运算符是()。

A) %= B)/C) =D) 〈=6.若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是()。

A)a[0][4] B)a[0][3] C)a[1][4] D)a[1][3]7.若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是A)#define N 10 Int a[N]B)#define n 5 Int a[2*n]C)int a[5+5]D)int n=10,a[n] 8.语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是()。

(说明:'\b'是退格符)A)re'hi'you B)abre'hi'y\bou C)a\bre\'hi\'y\bou D)a\bre\'hi\'y\\\bou 9.下列程序执行后的输出结果是()。

A)A B) B C) F D) Gvoid main(){ int x='f'; printf("%c \n",'A'+(x-'a'+1)); }10.若变量已正确定义,有以下程序段i=0;do{printf("%d,",i);}while(i++);printf("%d\n",i)其输出结果是()。

A)0,0 B)0,1 C)1,1 D)程序进入无限循环11.有以下程序#include <stdio.h>void main(){ int i,j,m=55;for(i=1;i<=3;i++)for(j=3;j<=i;j++)m=m%j;printf("%d\n",m);}程序的运行结果是( )。

A)0 B)1 C)2 D)312.已定义以下函数fun(int *p){ return *p; }该函数的返回值是()。

A)不确定的值B)形参p所指存储单元中的值C)形参p中存放的值D)形参p的地址值13.执行下面的程序段后,变量k中的值为()。

A)10 B) 3C) 不定值D) 0int k=3, s[2];s[0]=k; k=s[1]*10;14. 有以下函数int aaa(char *s){ char *t=s;while(*t++);t--;return(t-s);}以下关于aaa函数的功能叙述正确的是()。

A)求字符串s的长度B)比较两个串的大小C)将串s复制到串t D)求字符串s所占字节数15. 有以下程序void main(){ char s[ ]={ "aeiou"},*ps;ps=s; printf("%c\n",(*ps)+4);}程序运行后的输出结果是________。

A)a B)o C)u D)e16.有以下程序#include#define F(X,Y) X*Ymain(){ int a=3, b=4;printf("%d\n", F(a+b, a-b));}程序运行后的输出结果是()。

A)12 B)7 C)-7 D)1117.有以下程序main(){ int m[][3]={1,4,7,2,5,8,3,6,9};int i,j,k=2;for(i=0;i<3;i++){ printf("%d",m[k][i]); }}执行后输出结果是()。

A) 2 5 8 B) 3 6 9 C) 4 5 6 D) 7 8 918.以下关于typedef的叙述错误的是A)用typedef可以为各种类型说明一个新名,但不能用来为变量说明一个新名B)用typedef为类型说明一个新名,通常可以增加程序的可读性C)typedef只是将已存在的类型用一个新的名字来代表D)用typedef可以增加新类型19.有以下程序#include <stdio.h>void main(){ FILE *fp; int i;char ch[]=”abcd”,t;fp=fopen(“abc.dat”,”wb+”);for(i=0;i<4;i++)fwrite(&ch[i],1,1,fp);fseek(fp,-2L,SEEK_END);// 说明:SEEK_END为文件尾fread(&t,1,1,fp);fclose(fp);printf(“%c\n”,t);}程序执行后的输出结果是________。

A)c B)d C)a D)b20.已知指针p的指向如下图所示,则执行语句 *--p;后*p的值是()。

A) 20 B)30 C) 19 D) 29a[0] a[1] a[2] a[3] a[4]二、填空题(本题共10小题,每题1分,共10分)1.已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,将变量c中大写字母转换为对应小写字母的语句是 _____ 。

2.C语言中用于结构化程序设计的三种基本结构是顺序结构、选择结构、__________ 。

3.设有数组定义: char array [ ]="Student."; 则数组 array所占的空间为________ 。

4.若输入字符串:abcde<回车>,则以下while循环体将执行______次。

while((ch=getchar())==’b’) printf(“*”);5.若有定义:int *p[4];请说明它含义:定义了一个________。

6.表示“整数x的绝对值不大于10”的C语言表达式是 _________。

7.已知字符A的ACSII码值为65,以下语句的输出结果是_________。

char ch=’B’;printf(“%c%d\n”,ch,ch);8.若指针s指向存储单元a[8],p指向存储单元a[0],表达式s-p的值是 _________。

9.用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。

st=(char*) __________ ;10. 设 int b=2;表达式(b<<1)&5的值是__________。

三、程序阅读题(本题共6小题,每小题5分,共30分)void main(){int n=0,m=1,x=0;if (!n) x=1;if (m) x=2;if (x) x=3;printf(“%d\n”,x);}执行后的结果是________。

2. 有以下程序void main(){ int i;for(i=1;i<=40;i++){ if(i++%5=0)if (++i%8=0) printf("%d",i)}printf("\n")}执行后的结果是________。

3. 以下程序void main(){ char s[]="6789";s[1]=‘\0';printf("%s\n",s);}执行后的结果是________。

4. 有以下程序void main(){int a=4,b=3,c=2,t=0;if(b>a&&a<c) t=a;a=c;c=t;printf("%d ",c);}执行后的结果是________。

5. 有以下程序void main(){ char s[ ]= "abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是________。

6. 有以下程序void main(){ int a=1,b=3,c=5;int *p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}。

四、编程题(本题共3小题,共20分)1.求1+2+3+…+100的和。

(6分)2.求100—200间的全部素数。

(6分)3.有一3行4列的矩阵,编程求其中最大元素的值以及所在的行号和列号。

(8分)答案一、单选题(本题共20小题,每题2分,共40分)二、填空题(本题共10小题,每题1分,共10分)三、程序阅读题(本题共6小题,每题5分,共30分)四、编程题(本题共3小题,共20分)根据程序设计规范编写程序完成题中相应的功能。

1.求1+2+3+…+100的和。

(6分)#include <stdio.h>void main(){int i=1,s=0;do{s+=i;}while(i<=100);printf(“s=%d\n”,s);}2.求100—200间的全部素数。

(6分)#include <stdio.h>#include <math.h>void main(){int m,k,i,n=0;for(m=101;m<=200;m+=2){k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>=k+1){printf(“%d”,m);n++;}}}3.有一3行4列的矩阵,编程求其中最大元素的值以及所在的行号和列号。

(8分)#include <stdio.h>void main(){int i,j,row=0;colum=0,max;int a[3][4]={{1,2,3,4},{9,8,7,6},{12,13,10,11}};max=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]>max){ max=a[i][j];row=a[i][j];colum=j;}printf(“max=%d,row=%d,colum=%d\n”,max,row,colum); }。

相关主题