C语言全套试题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if (i= =n) printf(“%d is a primer\n”,n); else printf(“%d is not a primer\n”,n); } 35.下列程序段的输出结果是 。warmerror char n=’D’; switch(n) { case ‘a’: case ‘A’: case ‘b’: case ‘B’: printf(“good”); break; case ‘c’: case ‘C’: printf(“pass”); case ‘d’: case ‘D’: printf(“warn”); default: printf(“error”); break; } 36 . 运 行 以 下 程 序 , 从 键 盘 输 入 5,9 < 回 车 > , 则 输 出 结 果 是 。 9 , 5 。 void main() { int *p1, *p2, *p, a,b; scanf(“%d,%d”,&a,&b); p1=&a;p2=&b; if(a<b) { p=p1;p1=p2;p2=p; } printf(“%d,%d\n”,*p1, *p2); } 37.以下程序的输出结果的第一行是 ,第二行是 。 40 . 40 。 main( ) { int a[10]={10,20,30,40,50,60,70,80,90,100},*p,**q; p=a; q=&p; (*q)+=3; printf(“%d\n%d\n”,*p,**q); } 38.运行程序,输出的结果为 。 2 。 #include <stdio.h> int m=13; int fun2(int x,int y) { int m=3; return(x*y-m); } void main() { int a=7,b=5;
5
27.说明语句 int (*p)( );的含义是( C ) 。 (A) p 是一个指向一维数组的指针变量 (B) p 是指针变量,指向一个整型数据 (C) p 是一个指向函数的指针,该函数的返回值是一个整型 (D) 以上都不对 28.C 语言规定,调用一个函数时,当实参和形参都是普通变量时,它们之间数 据传递的方式是( B ) 。 (A) 地址传递 (B) 单向值传递 (C) 双向值传递 (D) 由用户指定传递方式 29.以下说法正确的是( D ) 。 (A) #define 和 printf 都是 C 语句 (B) define 是 C 语句,而 printf 不是 (C) printf 是 C 语句,但#define 不是 (D) #define 和 printf 都不是 C 语句 30.对下列共用体正确的描述是( C ) 。 (A) 一旦定义了一个共用体变量后,即可引用该变量或该变量中的任意成员 (B) 一个共用体变量中可以同时存放其所有成员 (C) 一个共用体变量中不能同时存放其所有成员 (D) 共用体类型数据可以出现在结构类型定义中, 但结构类型数据不能出现在 共用体类型中 31.表达式 0x13|0x17 的值是( B ) 。 (A) 0x04 (B) 0x13 (C) 0xE8 (D) 0x17 32.下列关于 C 语言文件操作的结论中,正确的选项是( B ) 。 (A) 对文件操作顺序无要求 (B) 对文件操作必须是先打开文件 (C) 对文件操作必须是先关闭文件 (D) 对文件操作前必须先测试文件是否打开,然后再打开文件 33. 若有定义语句: static char str[4][10]={“thank”, “you”, “very”, “much!”}; 则 str 数组共有 个元素, 其中存储’\0’的数组元素有 个。 40 . 23 。 34 . 运 行 下 面 的 程 序 , 分 别 输 入 3 和 9 后 的 输 出 结 果 是 , 。 3 is a primer . 9 is not a primer 。 #include <stdio.h> void main() { int n,i; scanf(“%d”,&n); for(i=2; i<=n-1;i++) if(n%i= =0) break;
printf("%d",fun2(a,b)/m); } 39.以下程序的输出结果是 。 9 #include <stdio.h> long int fun(int n) { long int s; if((n= =1)||(n= =2)) s=2; else s=n+fun(n-1); return(s); } void main() { long int x; x=fun(4); printf("%ld",x); } 40.已知 int x=10,y=20,z=30; 以下语句执行后 x 值为 为 ; z 值为 。 if(x>y) {z=x; x=y; y=z;} 10 , 20 , 30 。
printf("%d%d\n",a,b); } (A) 100200 (B) 10200 (C) 200100 (D) 1020 9 . 现 要 定 义 一 个 二 维 数 组 c[m][n] 来 存 放 字 符 串 “China” 、 “USA” 、 “England”,则常量 m 和 n 的合理取值是( A )。 (A) 3 和 8 (B) 2 和 10 (C) 4 和 9 (D) 3 和 7 10.下面程序段的运行结果是( B )。 char *p= “*ABCD*”; p+=2 ; printf (“%s\n” ,p); (A) *ABCD* (B) BCD* (C) ABCD* (D) *ABC 11.若有定义“float a[10],*p;”,且数组 a 的首地址为 2000,则执行语句 “p=a+2;p++;”后 p 中的值为:( B )。 (A) 2003 (B) 2012 (C) 2008 (D) 2000 12.若有定义“float 百度文库[10],*p;”,且数组 a 的首地址为 2000,则执行语句 “p=a+1;p++;”后 p 中的值为: ( C ) 。 (A) 2003 (B) 2012 (C) 2008 (D) 2000 13.执行下面的程序段,输出的正确结果是( B )。 int x='f'; printf("%c\n",'A'+(x-'a'+1)); (A)I (B) G (C) J (D) H 14.在位运算中,非零操作数每右移一位,其结果相当于( B )。 (A) 操作数乘以 2 (B) 操作数除以 2 (C) 操作数除以 16 (D) 操作数乘以 16 15.下列程序执行后的输出结果是(小数点后只写一位)( A )。 #include <stdio.h> void main( ) {double d; float f; long L; int I; I=f=L=d=20/3; printf("%d %ld %f %f\n",I,L,f,d); } (A) 6 6 6.0 6.0 (B) 6 6 6.7 6.7 (C) 6 6 6.0 6.7 (D) 6 6 6.7 6.0 16.C 语言可以处理的文件类型是( B )。 (A) 数据代码文件 (B) 文本文件和二进制文件 (C) 数据文件和二进制文件 (D) 文本文件和数据文件$
17.下面几组选项中,均不合法的标识符是( C ) 。 (A) A, P_0, do (B) float, la0, (C) b-a, goto, int (D) _123, temp, 18.语句 char p=’\073’;的作用是( D ) 。 (A) 使 p 包含一个字符 (B) 使 p 包含四个字符 (C) 使 p 包含三个字符 (D) 定义变量 p 为字符型类型,并进行初始化
_A INT
19.以下所列语句中,合法的语句是(B ) 。 (A) a=1= b; (B) ++a; (C) a=a+1=5; (D) y=int (a); 20.若有 int a ; 以下不能正确表达数学关系 10<a<15 的表达式是( A ) 。 (A) 10<a<15 (B) a= =11||a= =12||a= =13||a= =14 (C) a>10&&a<15 (D) !(a<=10)&&!(a>=15) 21.下列关于 switch,break 语句的结论中,正确的描述是( B (A) break 语句是 switch 语句中的一部分 (B) switch 语句中可以根据需要使用或不使用 break 语句 (C) 在 switch 语句中必须使用 break 语句 (D) 以上三个结论中有两个结论是正确的 22.执行语句“for(i=0;i++<3;);”后,变量 i 的值为( C )。 (A) 2 (B) 3 (C) 4 (D) 23.与语句 while(!x)等价的语句是(A) 。 (A) while(x= =0) (B) while(x!=0) (C) while(x!=1) (D) while(~x) 24.设有以下语句:enum color { red=3,yellow,blue=10,white,black}; 则 枚举变量 black 的值是( C ) 。 (A) 7 (B) 15 (C) 12 (D) 14 25.已有以下的变量定义 int *p, a=5; 想使指针变量 p 指向整型变量 a,应执 行( C) 。 (A) *p=&a (B) *p=a (C) p=&a (D) p=a 26.设有一函数定义“void p(int *x); {printf(“%d\n”,*x);}”和变量定义“int a=3;”, 则下列正确的函数调用是( D )。 (A) p(a) (B) p(*a) (C) p(int *a) (D) p(&a) ) 。
1.下列各组全是合法的 C 语言标识符的是( (A) day , abc_1_a , x1 (B) int , Abc , basic (C) M.John , year , sum (D) for , MONTH , abc
A )。
2.若 d 为 double 型,表达式 d=1, d+5, d++的值是( D )。 (A) 0 (B) 6.0 (C) 2.0 (D) 1.0 3.程序中定义如下宏: #define S(a,b) a*b 若定义 int area;且令 area=S(3-1,3+4),则变量 area 的值为( B )。 (A) 10 (B) 4 (C) 14 (D) 28 4.程序中定义如下函数: int S(int a, int b) { return(a*b); } 若定义 int area;且令 area=S(3-1,3+4),则变量 area 的值为( C )。 (A) 10 (B) 4 (C) 14 (D) 28 5.设有定义“enum color{red,green,blue}d;”,则下列叙述中正确的是( A )。 (A) color 是类型,d 是变量,red 是常量 (B) color 是类型,d 和 red 是变量 (C) color 和 d 是类型,red 是常量 (D) color 和 d 是变量,red 是常量 6.函数调用语句 func((a,b),(a,b,c));中,func 函数的实参个数为( B )。 (A) 1 (B) 2 (C) 4 (D) 5 7.以下程序调用 scanf 函数给变量 a 赋值,但方法是错误的,其错误的原因在 于( B )。 void main( ) { int *p,a; p=&a; scanf(“%d”,*p); } (A)*p 表示是指针变量 p 的地址 (B) *p 表示是变量 a 的值,而不是地址 (C) *p 表示是指针变量 p 的值 (D) *p 只能用来说明 p 是一个指针变量 8.以下程序的输出结果是( B )。 #include <stdio.h> int a,b; void fun() {a=100;b=200;} void main() { int a=10;b=20; fun();