C语言程序设计复习题一
一、 单项选择题
1. 指针s所指字符串的长度为
char *s="\\"Name\\Address\n";
A) 19 B) 15 C) 18 D)说明不合法
2. 若有下面的程序片段:
int a[12]={0}, *p[3], **pp, i;
for(i=0; i<3; i++)
p[i]=&a[i*4];
pp=p;
则对数组元素的错误引用是
A) pp[0][1] B) a[10] C) p[3][1] D) *(*(p+2)+2)
3. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为
A) a<>0 B) !a C) a=0 D) a
4. 若已定义:
int a[ ]={0,1,2,3,4,5,6,7,8,9], *p=a,i;
其中 0≤i≤9, 则对a数组元素不正确的引用上
A) a[p-a] B) *(&a[i]) C) p[i] D) a[10]
5. 以下程序的输出结果是
main( )
{ int x=10,y=10,I;
for(i=0;x>8;y=++i)
printf("%d,%d ",x--,y);
}
A) 10 1 9 2 B) 9 8 7 6 C) 10 9 9 0 D) 10 10 9 1
6. 下面程序的输出是
void prtv(int *x)
printf("%d\n", ++*x);}
main()
{ int a=25;
prtv(&a);}
A) 23 B) 24 C) 25 D) 26
7. 下面能正确进行字符串赋值操作的语句是
A)char s[5]={"ABCDE"}; B)char s[5]={'A'、'B'、'C'、'D'、'E'};
C) char *s;s="ABCDEF"; D)char *s; scanf("%s",s);
8. 设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;t=++x||++y&&++z;
A)不定值 B)2 C)1 D)0
9. 设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
A)k=*p1+*p2; B)p2=k;
C)p1=p2; D)k=*p1 *(*p2);
10. 请读程序:
#include<stdio.h>
#define SUB(X,Y) (X)*Y
main()
{ int a=3, b=4;
printf("%d", SUB(a++, b++));
}
上面程序的输出结果是
A) 12 B) 15
C) 16 D) 20
11. sizeof(float)是:
A) int B) float C) double D) 不确定
12. 若执行下面的程序时从键盘上输入3和4,则输出是
main()
{ int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);}
A) 14 B) 16 C) 18 D) 20
13. 以下程序的输出结果是
# include <stdio.h>
main()
{ printf("%d\n",NULL); }
A) 不确定的(因变量无定义) B)0 C)-1 D)1
14.请读程序:
#include<stdio.h>
f(char *s)
{ char *p=s;
while( *p!='\0') p++;
return(p-s);
}
main()
{ printf("%d\n",f("ABCDEF"));}
上面程序的输出结果是
A) 3 B) 6 C) 8 D) 0
15. 下面各语句行中,能正确进行赋字符串操作的语句行是
A) char st[4][5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};
C) char *s; s="ABCDE"; D) char *s; scanf("%s",s);
16. 若有说明:long *p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A) *p=&a; scanf("%ld",p);
B) p=(long *)malloc(8); scanf("%ld",p);
C) scanf("%ld",p=&a);
D) scanf("%ld",&a);
17. 若已定义:int a[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1] 地址的表达式是
A) p+1 B) a+1 C) a++ D) ++p
18. 下面程序的输出是
main()
{ enum team {my,your=4,his,her=his+10};
printf("%d %d %d %d\n",my,your,his,her);}
A) 0 1 2 3 B) 0 4 0 10 C) 0 4 5 15 D) 1 4 5 15
19. 以下程序输出结果是
main( )
{ int m=5;
if(m++>5)printf("%d\n",m);
else printf("%d\n",m--); }
A)7 B)6 C)5 D)4
20. 以下程序运行后,输出结果是 int d=1;
fun(int p)
{ int d=5;
d+=p++;
printf("%d",d);
}
main()
{ int a=3;
fun(a);
d+=a++;
printf("%d\n",d);
}
A)84 B)99 C)95 D)44数组全部赋值为1
21.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )。
A)字母 B)数字 C)下划线 D)连接符
22.计算机能直接执行的程序是( )。
A)源程序 B)目标程序 C)可执行程序 D)汇编程序
23.有以下定义语句,编译时会出现编译错误的是( )。
A)char a='a'; B)char a='\n'; C)char a='aa'; D)char a='\t';
24.以下选项中正确的定义语句是( )。
A)double a; b; B)double a=b=7; C)double a=7, b=7; D)double, a, b;
25.以下不能正确表示代数式2ab除cd的C语言表达式是( )。
A)2*a*b/c/d B)a*b/c/d*2 C)a/c/d*b*2 D)2*a*b/c*d
26.若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。
A)x=y==5; B)x=n%2.5; C)x+n=1; D)x=5=4+1;
27.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A)k++ B)k+=1 C)++k D)k+1
28.以下选项中,当x=3时,值为0的表达式是()。
A)x%2==1 B)x/2 C)x%2!=0 D)x%2==0
29.下列关于C语言文件的叙述中正确的是()。
A)文件是由一组相关数据组成,只能构成二进制文件
B)文件是由一组相关结构组成,可以构成二进制文件或文本文件
C)文件是由一组相关数据组成,可以构成二进制文件或文本文件
D)文件是由一组相关数据组成,只能构成文本文件
30.以下叙述中错误的是()。
A)C语言是一种结构化程序设计语言
B)结构化程序有顺序、分支、循环三种基本结构组成
C)使用三种基本结构构成的程序只能解决简单问题
D)结构化程序设计提倡模块化的设计方法
31.有以下程序
#include <stdio.h>
void main()
{ char c1,c2;
c1=’A’+’8’-‘4’;
c2=’A’+’8’-‘5’;
printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII码为65,程序运行后的输出结果是()
A)E,68 B)D,69 C)E,D D)输出无定值
32.已知字符‘A’的ASCⅡ代码值是65,字符变量c1的值是‘A’,c2的值是’D’。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。
A)A,B B)A,68 C)65,66 D)65,68
33.若变量已正确定义为int型,要通过语句scanf("%d,%d,%d", &a, &b, &c);给a赋值1、给b赋值2、给c 赋值3,以下输入形式中错误的是()。
A)<空格>1,2,3<回车> B)1<空格>2<空格>3<回车>
C)1, <空格><空格>2, <空格><空格>3<回车> D)1,2,3<回车>
34.在嵌套使用if语句时,C语言规定else总是()。
A)和之前与其具有相同缩进位置的if配对 B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对 D)和之前的第一个if配对
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论