《c语言试题.ppt》由会员分享,可在线阅读,更多相关《c语言试题.ppt(16页珍藏版)》请在人人文库网上搜索。
1、C语言基础习题及答案 一、选择题 1.设a的值为15,n的值为5,则进行a%=(n%=2)运算后,a的值为( A )。 A.0 B.1 C.12 D.6 2.设有类型说明 unsigned int a65535; , 按%d格式输出a的值,其结果是( B )。 A.65536 B.-1 C.1 D.-32767 3.下列运算符中优先级最高的是( C )。 A.?: B. A.104 B.103 C.013 D.004,5.下面的程序执行后,变量a的值是( B )。 #define SQR(x) x*x main() int a=10,k=2,m=1; a/=SQR(k+m)/SQR(k+m);。
2、 printf(%dn,a); A.10 B.1 C.9 D.0 6设有int i;则表达式i=1,+i,+i|+i,i的值为 ( C)。 A.1 B.2 C.3 D.4 7设有int i;则表达式(i=1,i=10)?i+|+i:+i的值为 ( A )。 A.1 B.2 C.3 D.10 8.设有int a =10,11,12,*p= 则表达式i=1,j=2,k=3, i 则下列错误的C语句是 ( A )。 A.s+=1; B.p+=1; C.*p+; D.(*p)+; 11.以下叙述正确的是( D )。 A.可以把define和if定义为用户标识符 B.可以把if定义为用户标识符,但不能把。
3、define定义为用户标识符 C.define和if都不能定义为用户标识符 D.可以把define定义为用户标识符,但不能把if定义为用户标识符 12. 以下程序的输出结果是( B )。 void prtv(int *x) printf(%dn,+*x); main() int a=25; prtv( A.25 B.26 C.27 D.以上均不对,13. 设有以下说明语句 struct ex int x; float y;char z; example; 则下面的叙述中不正确的是( D )。 A.struct ex是结构体类型 B.x,y,z都是结构体成员名 C.struct是结构体类型的关键。
4、字 D.example是结构体类型名 14. 下列叙述中正确的是( D )。 A.C语言的函数可以嵌套定义 B.C语言的子程序有过程和函数两种 C.C语言编译时不检查语法 D.C语言中,根据函数能否被其它源文件调用,被区分为内部函数和外部函数 15. 若有说明:int i,j=7,*p=,16. 以下程序的输出结果是( A )。 main() char st20=hello0t; printf(%d%dn,strlen(st),sizeof(st); A.520 B.99 C.1320 D.2020 17. 不合法的main函数命令行参数表示形式是( C )。 A.main(int argv,。
5、char *arge) B.main(int arc,char *arv) C.main(int argc,char *argv) D.main(int a,char *c) 18. 若有说明语句:int a,b,c,*d=,19. 以下程序段的输出结果是( A )。 char s=141141abct; printf(%dn,strlen(s); A.9 B.10 C.12 D.14 20. 以下程序的输出结果是( D )。 main() int x10,y10,i; for(i0;x8 ;y+i) printf(%d %d ,x-,y); A.10 1 9 2 B.10 9 9 0 C.9。
6、 8 7 6 D.10 10 9 1,21. 设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )。 A.6 B.6.500000 C.5.500000 D.6.000000 22. 以下定义语句中正确的是( A )。 A. int a=10,*b= 程序运行后的输出结果是( B )。 A. ing B. Bejing C. ng D. China,24. 下列关于单目运算符+、-的叙述中正确的是( A )。 A.它们的运算对象可以是char型变量、int型变量和float型变量 B.它们的运算对象可以是char型变量和int型变量,但不能是f。
7、loat型变量 C.它们的运算对象可以是int型变量,但不能是double型变量和float型变量 D.它们的运算对象可以是任何变量和常量 25. 设a=5、b=6、c=7、d=8、m=2、n=2,执行 (m=ab) 执行赋值语句pa;之后,那么p+5是___ a5的地址_____,*(p+5)是___ a5_____。 (第1空答 w=x; x=y; y=w; swap2(int *p1,int *p2) int *p; p=p1; p1=p2; p2=p; swap3(int *pa, int *pb) int p; p=*pa; *pa=*pb; *pb=p; main() int a,。
8、b; int *ptr1,*ptr2; a=5; b=7; ptr1=,swap3(ptr1,ptr2); printf(data7=%dtdata8=%dn,*ptr1,*ptr2); printf(data9=%dtdata10=%dn,a,b); 【运行结果】 data1=5 data2=7 data3=5 data4=7 data5=5 data6=7 data7=7 data8=5 data9=7 data10=5 2.【程序】 int a3=1,2,3,4,5,6; main() int i,j,(*p)3; p=a; printf(%d %d %dn,p00,*(p0+1),(*。
9、p)2); printf(%d %d %dn,p10,*(p1+1),(*(p+1)2); for (i=0; i2; i+) for (j=0; j3; j+) printf(%d ,*(*(p+i)+j); printf(n); 【运行结果】,1 2 3 4 5 6 1 2 3 4 5 6 3.【程序】 main() int i,n=0; for( i=2;i5;i+) do if(i%3) continue; n+; while(!i); n+; printf(n=%dn,n); 【运行结果】 n=4 4.以下程序运行后的输出结果是______。 【程序】 main () char a=。
10、Language,b=Programe; char *p1,*p2; int k; p1=a; p2=b; for(k=0;k=7;k+) if(*(p1+k)=*(p2+k) printf(%c,*(p1+k); ,【运行结果】 gae 5. 【程序】 #include void main() int i,j,k,a=5,m66; i=1; k=(a+1)/2; for (j=1;j=a*a;j+) mik=j; if (j%a=0) i=(i%a)+1;continue; k=(k%a)+1; i-; if (i=0) i=a; for (i=1;i=a;i+) for (j=1;j=a;j+) printf(%4d,mij); printf(n); ,【运行结果】 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9。