2011年高职升本 C语言练习题
精通学院计算机组
2010-7-30
1
2011年高职升本计算机基础复习材料—C语言练习题
1.下列标识符中,属于C语言合法标识符的是
A.?a B.a=2 C.00_ D.a_3 2.下列四组C语言用户标识符中,正确的一组是
A.Name Char _abc A23 B.Abc?c 5bytes -USA _54321 C.print const type define D.integer Doudle short_int int 3.以下数据中,不正确的数值是
A.0.0 B.5L C.9861 D.5.2E0.6 4.下列符号中不属于转义字符的是 A.‘\\\\’ B.‘\\x00’ C.‘\\00’ D.‘\\09’ 5.下列不属于字符常量的是 A.‘A’ B.“B” C.‘\\117’ D.‘\\x93’ 6.若 int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 A.2.5 B.2.75 C.3.5 D.0.0 7.若d为double型,表达式d=1,d+5,d++的值是
A.1 B.6.0 C.2.0 D.1.0 8.设int a=1,b=2,c=3,d=4;则表达式(a!=b)?(--c):d++的值是
A.5 B.4 C.2 D.3 9.假设所有变量均为整型,表达式为:a=2,b=5,a>b?a++:b++,a+b的值是 A.7 B.8 C.9 D.2 10.语句printf(“%d”,(a=2)&&(b=-2));的输出结果是
A.无输出 B.不确定的值 C.-1 D.1 11.设a=5,b=6,c=7,d=8,m=5,n=5;执行(m=a>b)&&(n=c>d);后n的值是
A.1 B.2 C.4 D.5 12.以下程序的输出结果是 main()
{ int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=aprintf(“%d,%d\\n”,k,m);}
A.0,0 B.0,1 C.1,0 D.1,1 13.设x,y,z,t均为int型变量,则执行以下语句后t的值是 x=y=z=1;t=++x||++y&&z++;
A.不确定的值 B.2 C.1 D.0 14. 设a,b,c均为int型变量,且a=3,b=2,c=2;则执行以下语句后a,b,c的值是 !++a&&b--||++c;
A.0,2,3 B.0,1,2 C.4,2,2 D.4,2,3 15.有以下变量定义:int k=7,x=12;则能使值为3的表达式是
A.x%=(k%=5) B.x%=(k-k%5) C.x%=k-k%5 D.(x%=k)-(k%=5) 16.以下程序的输出结果是 main()
{ int k=2,i=3,m; m=k+=i*=k*k;
printf(“%d,%d\\n”,m,i); }
A.8,6 B.14,12 C.16,12 D.16,8
2
2011年高职升本计算机基础复习材料—C语言练习题
17.若x,y,z,m,n均为int型变量,则执行下面语句后z的值为
m=10;n=5
x=(--m= =n++)?- -m:++n; y=m++; z=n; A.5 B.6 C.7 18.以下程序的输出结果是 main()
{ int a=110,b=017;
printf(“%x,%d\\n”,a++,++b); }
A.6e,15 B.6e,16 C.6f,15 19. 以下程序的输出结果是 main()
{ char c1=‘6’,c2=‘0’;
printf(“%c,%c,%d\\n”,c1,c2,c1-c2); }
A.6,0,6 B.输出错误信息 C.6,0,7 20.若有以下宏定义 #define N 2
#define Y(n) ((n+1)*N)
则执行语句z=8*N+Y(1);后Z的值为
A.20 B.16 C.14 21.设整型变量a的值是6,执行下列语句后a的值是 switch(a%2) {case 0: a-=2; case 1: a+=1; default: a=6; }
A.4 B.5 C.6 22.下列程序段运行后,X的值是 int a=1,b=0,x=1; if(!(--a))x--; if(b)x=7;else ++x;
A.0 B.1 C.7 23. 以下程序的输出结果是 main()
{ int i=0,j=0,k=6;
if(++i>0||++j>0) k++;
printf(“%d,%d,%d\\n”,i,j,k); }
A.0,0,6 B.1,0,7 C.1,1,7 24.假设所有变量均已正确说明,下列程序段运行后x的值是
3
D.10
D.6f,16
D.6,0,5
D.不确定
D.7
D.8
D.0,1,7
2011年高职升本计算机基础复习材料—C语言练习题
a=b=c=0;x=60; if(a)x--;
else if(b)if(c) x=3; else x+=4; A.3 B.4 C.60 D.63 25.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是 main() { int x;
scanf(“%d”,&x);
if(x++>5)printf(“%d”,x); else printf(“%d\\n”,x--); }
A.7和5 B.6和3 26. 以下程序的输出结果是
main()
{ int x=3,y=2,z=0;
if(x=y+z)printf(“%d”,x); else printf(“%d,%d”,y,z); }
A.3 B.2,0 27. 以下程序的输出结果是
main()
{ int a=4,b=6,t=0; if(a>b)t=a;a=b;b=t;
printf(“%d,%d\\n”,a,b); }
A.6,4 B.4,6 28. 以下程序的输出结果是
main()
{ int a=2,b=-1,c=5 if(aif(b<0) c=2; else c++;
printf(“%d\\n”,c); }
A.2 B.3 29. 以下程序的输出结果是
main()
{ int x=100,a=10,b=20,m=5,n=0; if(aelse if(n) x=10; printf(“%d\\n”,x);
C.7和4 C.2,1 C.6,0 C.5 4
D.6和4 D.2 D.语法错误D.6 2011年高职升本计算机基础复习材料—C语言练习题
}
A.1 B.10 C.100 30.定义int a=10;下列循环的输出结果是
while(a>7)
{ a--; printf(“%d”,a);}
A.1098 B.987 C.10987 31. 定义int a=10;下列循环的输出结果是
while(a>7)
a--;printf(“%d”,a);
A.1098 B.8 C. 7 32.若a为int型变量,则执行以下语句后a的值为
a=1;b=10; do{b-=a;
a++;}while(b- ->0); A.1 B.3 C.4 33. 以下程序的输出结果是
main()
{ int a=1,b=10;
do{b-=a;a++;}while(b--<0); printf(“%d\\n”,b); }
A.-1 B.1 C.8 34.有以下程序段
int n,t=1,s=0; scanf(“%d”,&n);
do{s=s+t;t=t-2}while(t!=n);
为使此程序不陷入死循环,从键盘输入的数据应该是 A.任意正奇数 B.任意负偶数 C.任意正偶数 35. 以下程序的输出结果是
main()
{ int i,sum;
for(i=1;i<=3;i++) sum+=i; printf(“%d”,sum); }
A.136 B.6 C.不确定的值 36. 以下程序的输出结果是
main() { int y=9;
for(;y>0;y--){ if(y%3==0){printf(“%d”,--y);continue;}} }
A.741 B.852 C.963 37. 以下程序的输出结果是
main() { int x;
5
D.不确定的值
D.9876
D.987
D.5
D.0
D.任意负奇数
D.0
D.875421
2011年高职升本计算机基础复习材料—C语言练习题
for(x=3;x<6;x++) printf((x%2)? (“**%d”): (“##%d\\n”),x); }
A.**3 B.##3 C.##3 ##4 **4 **4##5 **5 ##5
38. 设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{ if(j%3) j--; --j; --j; printf(“%d ”,j); }
A.6 3 B.7 4 C.6 2 39.若x,y是int型变量,则执行以下语句后x的值是
main() {int x,y;
for(y=1,x=1;y<50;y++) {if(x>=10)break; if(x%2= =1)x+=5;} x-=3; } A.3 B.6 C.7 40.若x,y均是int型变量,则执行以下语句的结果是
for(x=1;x<5;x+=2) for(y=1;y<5;y++) {printf(“%2d”,x*y); if(y= =4)printf(“\\n”); }
A.1 2 3 4 B.2 3 4 5 3 6 9 12 3 4 5 6 C.1 2 3 4 5 6 9 D.2 3 4 3 6 9 6 9 12
41. 以下程序的输出结果是
main()
{ int i=1,j=1; for(;j<10;i++) { if(j>5) break;
if(j%2!=0) { j+=3;continue;} j-=1; }
printf(“%d,%d\\n”,i,j); }
A.4,6 B.3,6 C.4,7 42. 以下程序的输出结果是
main()
6
D.**3##4 **5 D.7 3 D.10 D.3,7 2011年高职升本计算机基础复习材料—C语言练习题
{ int i;
for(i=1;i<6;i++)
{if(i%2) { printf(“#”); continue; } printf(“*”);} printf(“\\n”); }
A.#*#*# B.#### C.** D.*#*#* 43. 以下程序的输出结果是
main() { int i;
for(i=0;i<3;i++) switch(i)
{ case 0: printf(\"%d\ case 1: printf(\"%d\ default: printf(\"%d\ }
A.000112 B. 012 C. 012020 D. 120 44. 以下程序的输出结果是
main()
{ int i=1;j,k=19; while(i=k-1) { k-=3;
if(k%5==0){i++;continue;} else if(k%5) break;i++;} printf(“i=%d,k=%d\\n”,i,k); }
A.i=1,k=18 B.i=1,k=16 C.i=18,k=15 D.i=18,k=16 45. 以下程序的输出结果是
main()
{ int i,n=0;
for(i=2;i<5;i++)
{ do { if(i%3) continue;
n++;}while(!i); n++;}
printf(“n=%d\\n”,n); }
A.n=5 B.n=2 C.n=3 D.n=4 46.下列叙述正确的是
A.C语言编译时不检查语法 B.C语言子程序有过程和函数两种 C.C语言的函数可以嵌套定义 D.C语言所有函数默认都是外部的 47.以下叙述正确的是
A.在C程序中,主函数必须位于程序的最前面 B.在C程序中,一行只能写一条语句 C.C程序的基本结构是程序行
7
2011年高职升本计算机基础复习材料—C语言练习题
D.C语句是完成某种程序功能的最小单位 48.C语言规定,在一个C程序中,主函数的位置
A.必须在开始 B.必须在最后
C.可以任意 D.必须在系统调用的库后 49.一个C语言程序由
A.若干过程组成 B.若干子程序组成 C.若干程序段组成 D.若干函数组成 50.以上叙述中不正确的是
A.一个C源程序必须有且只能有一个主函数 B.一个C源程序可以含一个或多个C源程序文件 C.在C程序中注释说明只能位于一条语句之后 D.C程序的基本结构是函数 51.以下叙述正确的是
A.C语言规定只有主函数可以调用其他函数 B.一个C语言的函数中只允许有一对花括号 C.C语言中的标识符可以用大写字母书写
D.在对程序进行编译的过程中,可以发现注释中的拼写错误 52.有以下程序,执行后输出结果是
void fun(int V,int W) { int t;
t=V;V=W;W=t;} main()
{ int x=1,y=3,z=2; if(x>y) fun(x,y);
else if(y>z) fun(y,z); else fun(x,z);
printf(“%d,%d,%d\\n”,x,y,z); }
A.1,2,3 B.3,1,2 C.1,3,2 53. 有以下程序,执行后输出结果是
int fun(int a,int b) { return(a+b);} main()
{ int x=2,y=5,z=8,r; r=fun(fun(x,y),z); printf(“%d\\n”,r); }
A.12 B.13 C.14 54. 有以下程序,执行后输出结果是
int d=1; fun(int p) { int d=5; d+=p++;
printf(“%d ”,d);
8
2,3,1 15 D.D.2011年高职升本计算机基础复习材料—C语言练习题
}
main() { int a=3; fun(a); d+=a++;
printf(“%d\\n”,d); }
A.8 4 B.9 6 C.9 4 D.8 5 55. 有以下程序,执行后输出结果是
long fun(int n) { long s;
if(n==1||n==2) s=2; else s=n+fun(n-1); return s; }
main() { long x; x=fun(4);
printf(“%d\\n”,x); }
A.7 B.8 C.9 D.10 56.下列一维数组定义正确的是
A.int a[ ]; B.int n=8,a[n]; C.int a(8); D.#define N 8
int a[N];
57.下列一维数组初始化语句中,正确的是
A.int a[10]={ }; B.int a[9]={0,7,0,4,8}; C.int a[5]={0,2,0,3,7,9} D.int a[7]=7*{6}; 58.以下不能正确定义二维数组的选项是
A.int a[2][2]={{1},{2}}; B.int a[ ][2]={1,2,3,4};
C.flat a[ ][4]={{1,2},{8},{9,0,3,5}}; D.flat a[2][ ]={{0,3,8},{0,9,0}}; 59.以下能正确定义二维数组的是
A.int a[ ][3]; B.int a[ ][3]={2*3};
C.int a[ ][3]={ }; D.int a[2][3]={{1},{2},{3}}; 60.若有说明char c[ ]=“Europe”,则对该数组元素的正确引用是
A.c{5-3} B.c(3) C.c[2*2] D.c[3+7] 61.下列选项中合法的数组定义是
A.int a[]=”string”; B.int a[5]={0,1,2,3,4,5}; C.char a=”string”; D.int a[]={0,1,2,3,4}; 62.有如下定义int a,b,m;char c;float f;则下面正确的输入语句是
A.scanf(“a=b=%d”,&a,%b); B.scanf(“a=%d,b=%f”,&m,&f); C.scanf(“%3c”,c); D.scanf(“%5.2f”,&f);
9
2011年高职升本计算机基础复习材料—C语言练习题
63.有两个字符数组a,b,则以下正确的输入语句是
A.gets(a,b); B.scanf(“%s%s”,a,b); C.scanf(“%s%s”,&a,&b); D.gets(“a”),gets(“b”); 64.有以下定义
char a[10],*b=a;不能给数组a输入字符串的语句是 A.gets(a) B. gets(a[0]) C. gets(&a[0]); D. gets(b); 65.下面程序段的运行结果是
char c[10]=“\\\v\\\\\\0will\\n”;
printf(“%d,%d”,strlen(c),sizeof(c));
A.14,15 B.3,10 C.9,10 D.字符串中有非法字符输出不确定 66.下面程序段的运行结果是
char s[ ]=“abc\\0101\\\\\\xbc”; printf(“%d”,strlen(s));
A.6 B.5 C.3 D.7 67. 有以下程序,程序运行后的输出结果是 main()
{char p[]={„a‟,‟b‟,‟c‟},q[]=”abc”;
printf(“%d %d”,sizeof(p),sizeof(q)); }
A.4 4 B.3 3 C.3 4 D.4 3 68.若有以下语句
int x[]={1,3,5,10,12}; int *ptr=x;
则数组元素”10”的地址是 A.x+3 B.&(x+3) C.ptr D.ptr+10 69.执行语句”char a[10]={“abcd”},*p=a;”后,*(p+2)的值是
A.”abcd” B.‟b‟ C.‟c‟ D.‟\\0‟ 70.有以下程序,程序运行后的输出结果是 main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2; printf(“%d\\n”,*p+*q); }
A.16 B.10 C.8 D.6 71.有以下程序 main()
{char *p[]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”}; printf(“%d\\n”,strlen(p[4])); }
执行后输出结果是 A.2 B.3 C.4 D.5 72.若有语句:int i=-19,j=i%4;printf(“%d\\n”,j);则输出结果是_____________________. 73.语句printf(“a\\bre\\‟hi\\‟y\\\\\\bou\\n”);输出的结果是_____________.
10
2011年高职升本计算机基础复习材料—C语言练习题
74.以下程序运行后的输出结果是 。
main()
{ int x=2006,y=2007; printf(\"%d\\n\ }
75.以下程序运行后的输出结果是 。
main()
{ int a=10;
printf(\"%d,%o,%x\\n\ }
76.以下程序运行后的输出结果是 。
main()
{ int a,b,c;
a=25;b=025;c=Ox25;
printf(\"%d %d %d\\n\ }
77. 以下程序运行后的输出结果是 。
main()
{ int a=1,b=2;
a=a+b;b=a-b;a=a-b; printf(\"%d,%d\\n\ }
78. 以下程序运行后的输出结果是 。
main()
{ char ch='B';
printf(\"%c %d\\n\ }
79.以下程序运行后的输出结果是 。
main()
{ char ch;
ch='H'-'A'+'0'; printf(\"%c\\n\ }
80.以下程序运行后的输出结果是 。
main()
{ float x=123.4567;
printf(\"%f\\n\ }
81.有程序如下,要求给i赋10,给j赋20,则应该从键盘输入 。 main() { int i,j;
scanf(\"i=%d,j=%d\
11
2011年高职升本计算机基础复习材料—C语言练习题
printf(\"%d,j=%d\}
82.以下程序运行后的输出结果是 。
main()
{ int a=0,b=0,c=0;
c=(a+=a-=5),(a=b,b+3);
printf(\"%d,%d,%d\\n\}
83.以下程序运行后的输出结果是 。
main()
{ int a=5,b=4,c=3,x; x=a>b>c;
printf(\"x=%d\\n\ }
84.以下程序运行后的输出结果是 。
main()
{ int a=3,b=2; b=a<0&&a++>3;
printf(\"%d %d\\n\ }
85. 以下程序运行后的输出结果是 。
#define MAX(x,y) (x)>(y)?(x):(y) main()
{ int a=5,b=2,c=3,d=3,t;
t=MAX(a+b,c+d)*10; printf(\"%d\\n\}
86. 以下程序运行后的输出结果是 。
#define S(x) 4*x*x+1 main()
{ int i=6,j=8;
printf(\"%d\\n\}
87.以下程序运行后的输出结果是 。
main()
{ int x,a=1,b=2,c=3;
x=(a88.当a=3,b=2,c=1时,以下if语句执行以后a,b,c中的值分别为____________。
if(a>b) a=b; if(b>c) b=c; else c=b,c=a;
12
2011年高职升本计算机基础复习材料—C语言练习题
89.当a=3,b=2,c=1时,以下if语句执行以后a,b,c中的值分别为____________。
if(a>b) a=b; if(b>c) b=c; else c=b;c=a;
90.以下程序运行后的输出结果是 。
main()