1、C语言程序设计复习题及参考答案C语言程序设计一、单项选择题若以下各题所有库函数都可以合法使用,且变量定义如下:int m=5, i=3,j=2,*p, a=8,b=0;int arr10=0,1,2,3,4,5,6,7,8,9,td 3=1,2,3,4,5,6;float x=2.5,y=3.0;double z=0; long n=1;char c=A,ch20=a,b,c,0,d,0;struct student int num; char name20; float score; struct student *next;st1,st2,*ps; FILE *fp; 1若将3和10从键盘
2、输入给变量a、x,输入语句为scanf(“a=%d,x=%f”,&a,&x);正确的键盘输入是(表回车): A a=3,x=10 B 3,10 C 3 10 D 3,10.02. 以下不是死循环的语句是:A for ( ; ;y+=i+); B while(a) y+=i+ ;C do y+=i+while (a0);D for (b=0;(c=getchar()!=n);)b+;3.若p=arr;正确的语句是: A *p=arr10; B *p=arr2*a; C p=arr5; D pi=arr0;4.若ps=&st1;则下面描述正确的是: A ps-num与st1-num等价。 B ps
3、.num与st1.num等价。 C ps-num与num等价。 D ps-num与st1.num等价。5.语句printf(“%d,aj);的输出结果是:A 1 B 0 C 8 D都不对 6.表达式 j/i+a%i+x 的值是:A 6 B 4.5 C 6.0 D 5.5 7.表达式 b|a+i&ij ?+i : i+;则a与i的值分别为:A 4 ,4 B 3 ,4 C 4 ,3 D 3 ,3 10.if (ab) if (c=d) x=8;else x=1;表示的逻辑关系是: 8 ab 且c=d 8 ab 且c=dA x= B x= 1 ab 且cd 1 ab且c=d 8 ab 且c=d 8
4、ab 且c=dC x= D x=1 ab 1 ab 11.将字符串“Wan Ming”输入数组ch中,正确的是: A、scanf(“%s”,ch) B、scanf(“%s”,&ch) C、ch=“Wan Ming” D、gets(ch)12. 执行语句printf(“%c”,td10+A)的结果是: A、A B、B C、D D、E13下列关于main()函数说法正确的是A、 C语言程序总是从main()开始执行 B、 C语言程序可以没有main()函数C、C语言程序可以包含多个main()函数,但必须在不同的模块中 D、C语言程序中main()函数不能有形式参数14下列关于函数说法正确的是A、
5、 C语言程序的函数内还可定义其他的函数B、 C语言程序的函数内不可再定义其他的函数C、 C语言程序的函数不能自己调用自己D、 C语言程序中只有同一源文件中的函数才能有调用与被调用关系15若#define squ(x) x*x 执行语句printf(“result=%d”,squ(i+j);结果为:A、result=36 B、36 C、result=11 D、1116. 若#define squ(x) (x)*(x) 执行语句printf(“result=%d”,squ(i+j);结果为:A、result=36 B、result=17 C、result=11 D、result=2517C语言对宏
6、命令叙述正确的是A、 宏替换占用运行时间B、 编译程序对宏命令的处理是在对源程序中其它成分编译之前进行的C、 宏命令的处理是在程序执行时进行的D、 宏命令的处理是在程序连接时进行的18. 若执行语句a- =a+=a*=10;a的值为:A、0 B、-10 C、-100 D、10019若执行语句p=arr; printf(“%d”,*(p+i);输出结果为A、0 B、2 C、3 D、120若执行printf(“%s”,ch);结果为:A、abc B、abc C、abcd D、abc0d21.若对数组进行初始化:char carr =s,t,u,d,e,n,t,barr =”student”;则正确
7、的是A、carr与barr长度相同 B、carr比barr长C、carr与barr相同 D、carr比barr短22若有说明语句int (*p)N;则p是A、N个指向整型变量的指针 B、可指向有N个整型元素的一维数组的指针C、指向N个整型变量的函数指针 D、有N个指针元素的一维指针数组23若有说明语句int *f( );则函数f是A、f是一个指向整型变量的数组指针 B、f返回一个整型数据C、f是一个指向整型变量的函数指针 D、f 返回一个整型指针,指向函数本身24若函数f定义如下:void f(char *d, char *s) while ( *d+=*s+);函数f的功能是:A、串比较 B
8、、串复制 C、求串长 D、串反向25表达式100+a+a+x*z的值的数据类型为A、int B、float C、double D、char26若要动态申请一个double型内存单元,正确的语句是A、pd=double malloc(sizeof(double) B、pd=( * double)malloc(sizeof(double)C、pd=double * malloc(sizeof(double) D、pd=(double *)malloc(sizeof(double)27若要从键盘上输入67892到变量n中,正确的语句是A、scanf(“%lf”,&n); B、scanf(“%ld ”
9、,&n); C、scanf(“%lf ”,n); D、scanf(“%d ”,&n); 28判断字符变量c是否不为小写英文字母的正确表达式是A、a=c = a & c=zC、ac z D、cz 29下列每组表达式被执行后,结果完全等价的是A、 !(b= =0)与 !(!b ) B、b=(a=4,4*5) 与 b=a=4,4*5C、float(i/j) 与 float i/j D、0x0 & x=0|b=0)&(a0|b=0&b=0)&(a0&b0&(a*b036. 若x=y=z=1;表达式(x-|+y)&(z+)执行后,x,y,z的值分别为:A. 0,1,1 B. 0,1,2 C. 0,2,1
10、 D. 0,2,237.下列变量的初始化,不正确的是:A. int x,y=5; B. float x=y=3.5; C. char s=”a”; D. int a3=1,0,9;38. 可以代替while(x!=0)中的条件x!=0的是:A. x B. !x C. x=1 D. x!=139.有关函数参数,下列说法不正确的是:A. 实参和形参是不同的变量; B. 实参可以将数据传给形参;C. 形参可以将数据传给实参; D. 实参和形参必须个数相等,类型一致。40.为避免嵌套的条件语句if-else的二义性,C语言规定else与if的配对原则是:A. 同一行上的未配对if B. 缩排位置相同的
11、未配对if C. 它之前最近的未配对的if D. 它之后最近的未配对if41.对于一个二维数组,以下几种方法中,不能正确表示i行j列元素的是:A.tdij B. *(tdi+j) C. *(*(td+i)+j) D.*(td+i+j)42.下面语句段不是死循环的是:A. for(i=1;i+) B. k=0; s=s+i; do k+; while(k0); C. i=0; D. a=1; while(1) while(a5) continue; if(i=20) break; a+; 43.下列字符串中,可以用作变量名的是:A. _out2 B. 12abc C. while D. stu&
12、344. 表达式0a5和0a&a5的值分别为:A. 0和0 B. 0和1 C. 1和0 D. 1和145.下列常数中,符合C语法规则的是: A. B. .5e2 C. 018 D. e346.以下为合法的整型常量的是: A. 027a B. 0.0 C. 0x4e3 D. 3102 47.以下为合法的整型常量的是:A 3 B. 281 C. 5af D. 10148.以下为合法的实型常量的是: A. 1.5102 B. 1e-5 C. 1e1.5 D. E+5 49.以下为合法的实型常量的是: A. B. .5 C. 025.3 D. 050.以下为合法的字符型常量的是: A. A B. 64 C. 啊 D. n51. 以下为非法的字符型常量的是:A. ok B. * C. A D.11152 以下为合法的变量定义的是: A. #define N 10 B. int a=12,b,c; float x,y,a=1.5;int a3*N; C. i
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1