《2022年重庆市计算机等级考试年年C语言二级考试试题及答案 .pdf》由会员分享,可在线阅读,更多相关《2022年重庆市计算机等级考试年年C语言二级考试试题及答案 .pdf(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录二级 C 语言笔试试卷( 2007 年 4 月) . 1 二级 C 语言笔试试卷参考答案(2007 年 4 月) . 7 二级 C 语言笔试试卷( 2007 年 11月) . 8 二级 C 语言笔试试卷参考答案 (2007 年 11月) . 16 二级 C 语言笔试试卷 (2008 年 4 月) . 18 二级 C 语言笔试试卷参考答案 (2008 年 4 月) . 24 二级 C 语言笔试试卷 (2008 年 11月) . 26 二级 C 语言笔试试卷参考答案 (2008 年 11月) . 32 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
2、 - - - - - 名师精心整理 - - - - - - - 第 1 页,共 34 页 - - - - - - - - - 1 二级 C 语言笔试试卷 (A) 2007 年 4 月注意事项: 1. 一、二题为客观题,请将答案涂在机读答题卡上 2. 三、四、五、六题为主观题,请将答案做在答题纸上一、单项选择题。 (每小题分,共20 分)1在 C程序的函数调用时,主调函数中的实参和被调函数中的形参() 。(A) 个数、次序必须相同,但数据类型可以不考虑(B) 个数、次序和对应参数的数据类型都应该相同(C) 个数、次序和数据类型均可以不相同(D) 对应参数数据类型应相同,但个数和次序可以不考虑2如
3、 a 为 int型,则与表达式a 等价的 C语言关系表达式是()(A) a0 (B) a!=0 (C) a=0 (D) a03循环语句for(a=0,b=0;(b!=45)|(a5);a+);的循环次数是()(A) 4 (B) 3 (C) 5 (D) 无数多次4设有字符数组a,则正确的输入语句是() 。(A) gets(a); (B) scanf(%c,a); (C) scanf(%s,a); (D) gets(a);5. enum colorred,green,yellow=5,white,black;定义了一枚举类型。编译程序为值表中各标识符分配的枚举值依次为() 。(A)1、2、3、4、
4、5 (B) 0、1、5、2、3 (C)0、1、5、6、7 (D) 3、4、5、6、76运行完下列程序后,在屏幕上的内容是() 。void main () int a=0; a+=(a=12); printf (%dn,a); (A)0 (B)6 (C)12 (D)247若 x,y 为实数类型的变量,要判断x,y 相等,最好使用下列关系表达式() 。(A)x=y (B) x-y=0 (C) fabs(x-y)1e-8 (D) labs(x-y)b (B) p-a (C) +(p-a) (D) (p+)-a9以下程序的输出结果是() 。int x=3,y=4; void main( ) int x
5、,y=5; x=y+; printf(%d,x); (A)3 (B) 4 (C) 5 (D) 610在 C语言中,函数默认的存储类型为() 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 34 页 - - - - - - - - - 2 (A) auto (B) register (C)static (D) extern 11有定义: float y,*p=&y;,假定变量y 在内存中所占地址为100103。那么 p 的值为() 。(A) 100 (B) 101 (C)
6、 102 (D) 10312. 有定义: int a10, n, *p1=a,*p2=&a9;,则正确的赋值语句为() 。(A) n=p2-p1; (B) n=p2*p1; (C) n=p2+p1; (D) n=p1/p2;13调用 strlen(abcd0efng0)的结果为 ( )。(A) 4 (B) 5 (C) 8 (D) 1014执行下面程序中输出语句后,a 的值是 ( )。#include main( ) int a; printf(%dn,(a=3*5,a*4,a); (A)65 (B)20 (C)15 (D)1015若有定义int a,b,x;且变量都已正确赋值,下面选项中合法的
7、if语句是() 。(A)if(a=b) x+; (B)if(a=b) x+; (C)if(ab) x+; (D)if(a=b) x+;16执行下面的程序后,变量a 的值是() 。#include #define SQR(X) X*X void main() int a=10,k=2,m=3; a/=SQR(m)/SQR(k); printf(%d n,a); (A)10 (B)1 (C)5 (D)017若变量t 为 double 类型,表达式 (t=1,t+5,t)的值是 ( )。 (A)1 (B)6.0 (C)1.0 (D)618在 C语言中,下面关于数组的描述中正确的是( )。(A) 数组
8、的大小是固定的,但可以有不同类型的数组元素(B) 数组的大小是可变的,但所有数组元素的类型必须相同(C) 数组的大小是固定的,所有数组元素的类型必须相同(D) 数组的大小是可变的,可以有不同的类型的数组元素19下述程序的输出结果是() 。#include void main() int a,b,c=241; a=c/100%9; b=-1&-1; printf(%d,%dn,a,b); (A)2,0 (B)2,1 (C)6,1 (D)0,-120. 若有以下说明和语句,则下列引用方式中不正确的是() 。struct worker int no; char *name; work,*p=&wor
9、k; (A)work.no (B)(*p).no (C)p-no (D)work-no 二、基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白处。每空2 分,共 10 分)1在 C语言中,函数一般由两个部分组成,它们是函数首部和。2任何程序都可调用标准函数exit(),当它被调用时就程序的执行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 34 页 - - - - - - - - - 3 3一个 C语言程序在可以被执行之前,需要经过
10、的4 个处理程序是:编辑程序、预处理程序、编译程序和。4在 C语言中无固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由提供。5C标准库函数rewind 的作用是。备选项:(A) 主函数(B) 函数体(C) 函数首部(D) 用户自定义函数(E) 终止(F) 使读写指针指向文件的开头(G) 标准 I/O 库/ 系统(H) 连接程序(J) 判断文件指针是否指向文件末尾三、程序填空题。 (每空 2 分,共 20 分) 。1. 下面程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母后输出。请填空完善程序。#include void main()
11、char c; while(c= )!=n) if(c=a&c=z) printf(%c,c-32); 2. 下面程序的功能是从当前目录下的文本文件“f1.txt”中读取前10 个字符,依次显示在屏幕上;如果文本文件中不足10 个字符,则读完为止;请填空完善程序。#include void main() FILE *fp; int i; char c; if( =NULL) printf(Cant open this file!n); return; for(i=0;i10;i+) if(feof(fp) break; c=fgetc(fp); putchar(c); fclose(fp);
12、3. 下面程序的功能是输出数组中的各字符串,请填空完成程序。 #include void main() char *a=abcd,12345,efghijk,67890; char ; int j=0; p=a; for(;j4;j+) ; 4. 下面函数mfc 用于求取两个正整数的最大公因子,请填空完善函数。int mcf(int a,int b) int temp; while(b) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 34 页 - - - - - - -
13、 - - 4 temp= ; a=b; b=temp; return a; 5. 下面程序的功能是将字符串str的内容颠倒过来并输出,请填空完善程序。#include void main() char str=abcdefg,*p1,*p2,ch; p1=p2=str; while(*p2!=0) p2+; ; while(p1p2) ch=*p1,*p1=*p2,*p2=ch; ; p2-; puts(str); 6. 下面函数yh 的功能是构成一个杨辉三角形,请填空完成该函数。#include #define N 11 void yh(int aN) int j,k; for(j=1;jN
14、;j+) aj1=1; ajj= ; for( ;jN;j+) for(k=2;kj;k+) ajk= +aj-1k; 四、阅读程序题(每小题5 分,共 30 分1下面程序的输出结果是() 。#include void main() void fun(int *k); int w=5; fun(&w); void fun(int *k) (*k)+; printf(%dn,*k+); 2下面程序的输出结果是() 。#include void main() char ch25=1234,5678,*p2; int j,k,s=0; for(k=0;k2;k+) pk=chk; 名师资料总结 -
15、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 34 页 - - - - - - - - - 5 for(k=0;k0&pkj=9;j+=2) s=10*s+pkj-0; printf(s=%dn,s); 3下面程序的输出结果是() 。#include int func(int,int); void main() int k=4,m=1,p; p=func(k,m); printf(%d,p); p=func(k,m); printf(%dn,p); int func(int a,int
16、b) static int m=1,n=2; n+=m+1; m=n+a+b; return m; 4下面程序的输出结果是() 。#include void main() int a10=1,2,3,4,5,6,7,8,9,10,k,s,i; double ave; for(k=s=i=0;i10;i+) if(ai%2) continue; s+=ai; k+; if(k!=0) ave=s/k; printf(%d,%fn,k,ave); 5在下列程序中,若输入为:today is Monday!,则输出结果是() 。#include void main() char s40,c,*str
17、=s; int num=0,word=0; gets(str); while(c=*str+)!=0) if(c= ) word=0; else if(word=0) word=1; num+; printf(%d wordsn,num); 6. 下列程序的输出结果是() 。#include unsigned f(unsigned num) unsigned k=1; do k*=num%10; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 34 页 - - - - -
18、 - - - - 6 num/=10; while(num); return k; void main() int x=35,y=550; printf(%d,%dn,f(x),f(y); 五、编程序。 (每小题 10 分,共 20 分)1函数 delspace 的功能是删除一个字符串中所有的空格。例如,输入字符串为This is a string,则输出结果为 Thisisastring。测试用主函数如下所示,请编制函数delspace 。#include #include void main() char *delspace(char *str); char s81,*ds; gets(s
19、); ds=delspace(s); printf(nResult: %sn, ds); 2.已知两个3 位数 abc和 cba 之和为 1333(即 abc+cba=1333) ,编程序求出3 个数字 a、b 和 c。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 34 页 - - - - - - - - - 7 二级 C 语言笔试试卷 (A)参考答案(2007 年 4 月)一、单项选择题。 (每小题分,共20 分)BBDCC DCCCD AAACA BCCBD 二、基
20、本概念选择填空题(每空2 分,共 10 分) B E H G F 三、程序填空题。 (每空 2 分,共 20 分) 。 getchar() (fp=fopen(f1.txt,r) *p puts(pj)或 puts(*(p+j) a%b p2- p1+ 1 j=3 aj-1k-1 四、阅读程序题(每小题5 分,共 30 分)1. 6 2. s=1357 3 9,19 4 5,6.000000 5 3 words 6 15 ,0 五、编程序。 (每小题 10 分,共 20 分)1参考程序及评分标准char *delspace(char *str) char *p=str; /2 分while(*
21、p) if(*p= ) strcpy(p,p+1); else p+; /6 分return str; /2 分2. 参考程序及评分标准/参考程序一#include void main() int n,a,b,c; /2 分for(n=100;n1000;n+) a=n/100; b=n/10%10; c=n%10; if(a*100+b*10+c+c*100+b*10+a=1333) printf(abc is: %d%d%dn,a,b,c); /8 分/参考程序二#include void main() int n,m,a,b,c; /2 分for(a=1;a10;a+) for(b=0;
22、b10;b+) for(c=0;c10;c+) n=a*100+b*10+c; m=c*100+b*10+a; if(n+m=1333) printf(abc is: %d%d%dn,a,b,c); /8 分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 34 页 - - - - - - - - - 8 二级 C 语言笔试试卷 (A) 2007 年 11 月注意事项: 1. 一题为客观题,请将答案涂在机读答题卡上 2.请将二、三、四、五题的答案做在答题纸上一. 单项选择题
23、。 (每小题 1 分,共 20 分)1. 一个 C 程序的执行是从() 。( A)本程序的main 函数开始( B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束( C)本程序的main 函数开始,到本程序文件的最后一个函数结束( D)本程序文件的第一个函数开始,到本程序main 函数结束2. 设有 C 语句: int x=3, y=4,z=5;, 则下面表达式中值为0 的是() 。( A)x&y (B)x=y (C) x|y+z&y-z (D)!(xy )& !z|1) 3. 以下有关宏替换的叙述不正确的是() 。(A)宏替换不占用运行时间( B )宏名无类型(C)宏替换只是字符
24、串替换;( D )宏替换是在运行时进行的4. 在标准库函数的调用形式“fread(buffer,size,count,fp);”中,参数buffer代表的是() 。( A)一个整型变量,代表要读入的数据总数( B)一个文件指针,指向要读的文件( C)一个指针,指向读入数据存放的首地址( D)一个存储区,存放要读的数据项5. 位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于() 。( A)操作数乘以2 (B) 操作数除以2 (C) 操作数除以4 (D) 操作数乘以4 6. 下面程序运行后,变量m 的值为() 。 #include void main() int m, n, k; m=(
25、n=4)+(k=10-7); printf( m=%dn” ,m); (A)4 (B) 3 (C) 7 (D)14 7. 下面程序运行结果(或出现的情况)是() 。 #include void main() int x=3,y=0,z=0; if (x=y+z) printf( * );else printf( #n); ( A)有语法错误不能通过编译( B)输出: * ( C)可以通过编译,但不能通过连接,因而不能运行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 34
26、 页 - - - - - - - - - 9 ( D)输出: # 8. 已有定义int k=2; int *ptrl, *ptr2,且 ptr1 和 ptr2 均已指向变量k, 下面不能正确执行的赋值语句是() 。( A)k =*ptr1+*ptr2; (B) ptr2 = k; (C) ptr1=ptr2; (D) k = *ptr1*(*ptr2); 9. 若有已经建好的链表结构如下,指针平p、q 分别指向图示节点(b 节点为插入c 节点前的链表末尾) ;a b c p q 不能实现将q 所指节点插入到链表末尾的一组语句是() 。( A)qnext = NULL; p= pnext; pn
27、ext=q;( B)p=pnext;q next=p next; pnext=q;( C)p= pnext;q next=p; pnext=q;( D)p= (*p).next; (*q).next = (*p).next; (*p).next = q; 10. 有定义 int a=3,b=4,c=5; 执行完表达式a+-b&b+c-&+c后, a,b,c 的值分别为()(A)3 4 5 (B) 4 3 5 (C) 4 4 4 (D) 4 4 5 11. 下列程序的执行结果是() 。 #include union ss short int i; char c2; ; void main ()
28、union ss x ; x.c0=10; x.c1=1; printf( %d,x.i); (A)11 (B) 266 (C) 265 (D) 138 12. 若有 C 语言 int i = 10; ,则执行下面程序段后变量i 的值是() 。switch (i) case 9: i+=1; case 10: case 11: i-=1; default: i+=1; (A)10 (B) 11 (C) 12 (D) 9 13. 在下列选项中,不正确的赋值语句是() 。(A)t/=5; (B) n1=(n2=(n3=0); (C) k=i= = j; (D) a=b+c=1 ;14. 下面 C
29、程序运行后变量x 的值是() 。 #include void main() int a,b,c,x; a=b=c=0; x=35; if(!a) x-; else if(b) ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 34 页 - - - - - - - - - 10 if (c) x=3; else x=4; printf ( %dn ,x); (A)34 (B) 4 (C) 35 (D) 3 15. 设有以下宏定义:#define N 3 #define
30、Y(n) (N+1*n) 则执行语句:z=2 *(N*Y(5+1); 后, z 的值为() 。(A)30 (B) 72 (C) 48 (D) 54 16. 在以下的四个运算符中,优先级最低的运算符是() 。(A)= (B) / (C) != (D) & 17. 已知 E的 ASCII 码是 69,则执行下面语句的结果是() 。printf( %c , D - );(A)66 (B) A (C) B (D) E 18. 设有以下语句:int a=3, b=6,c; c=ab2; 执行后 c 的低 8 位二进制值是() 。(A)00011011 (B)00010100 (C) 00011100 (
31、D) 00011000 19. 在 C 语言中,以下叙述错误的是() 。( A)函数被调用时,系统才为形参分配内存( B)实参和对应形参的数据类型必须一致( C)实参可以是变量、常量或表达式( D)形参可以是变量、常量或表达式20. 字符串常量ab cnt012xa1*2 在内存中所占的存储空间节数是() 。( A)11 (B) 13 (C) 15 (D) 18 二基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项,并讲其号码填入各小题的空白处。每空2 分,共 10 分)1. 函数首部int main(int argc, char *argv )中 argc表示的是。2. C 语言
32、能处理的文件类型可以是文本文件和。3. 下面语句定义了共用体( 联合体 ) 变量 a, 则 a 占用个字节。union data short int i ;char c ; double d;a; 4. 为了避免嵌套的if-else 语句的二义性,C语言规定 else 总是与组成配对关系。5. 宏定义中的宏名不能包含。备选项:(A)空格(B)二进制文件(C)数字(D)在其之前未配对的if (E)参数字符串(F)命令行参数的个数(G ) 11 (H)在其之前最近的未配对的if (J)8 (K)在定义该函数时所指定的数据类型( L)下划线(M )程序文件三. 程序填空题(每空2 分,共 20 分)
33、1. 下面程序的功能是:从键盘上输入若干个学生的成绩(用负数结束输入过程),统计计算出平均成绩;请填空完成程序。 #include void main() float sum=0.0,ave,a; int n=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 34 页 - - - - - - - - - 11 printf( nter markn); scanf(% , ); while(a=0.0) sum=sum+a; ; scanf(% , ); ave=su
34、m/n; printf(ave=%fn ,ave); 2. 下面程序的功能是将一个字符串str的内容颠倒并输出,请填空完成程序。 #include void main() char str=abcdefg ; char *p1,*p2,ch; p1=str; p2=str; while(*p2!=0 ) p2+ ; while(p1p2) ch=*p1,*p1=*p2,*p2=ch; ; p2-; puts(str); 3. 下面程序从终端输入一行字符串存入字符数组,然后输出;请填空完成程序。 #include void main() char str80,*sp; int n; for(n=
35、0;n80;n+) strn= ; if(strn=n ) break; strn=0 ; sp=str; while(*sp) putchar( ); 4. 下面函数fun 的功能是比较两个字符串的大小,若两字符串相同则返回0 值,否则返回两个字符串中第一个不相同字符之差;请填空完成函数。 #include int fun(char *s,char *t) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 34 页 - - - - - - - - - 12 while(
36、*t+=*s+ & *t!=0 & *s!= 0) ; return( ); void main() char str180,str280; gets(str1); gets(str2); printf( dn ,fun(str1,str2); 5. 下面程序的功能是统计字符串中大小写字母的个数,请填空完成程序。 #include #define IA(x) void main() char str80,*s,ch; int count=0; gets(str); s=str; while(*s) ch=*s+; if(IA(ch) count+; printf(the sum is %dn,
37、count); 6. 下面函数在一维数组v 中将 x 插入到下标为i (i=0 )的元素前,如果i 大于等于元素的个数,则x 添加到 v 数组原数据的末尾。V数组原有元素个数保存在指针n 所指向的变量中,插入后元素个数加1;请填空完成程序。 #include void insline(double,int *n,double x,int ,i) int j; if( ) for(j=*n-1; ;j-) =vj; else i=*n; vi=x; (*n)+; void main() double s10=11,23,65,78,x; int m=4,*p=&m,k; x=99; scanf(
38、%d ,&k); insline(s,p,x,k); for(k=0;km;k+)printf(%f,sk); putchar(n ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 34 页 - - - - - - - - - 13 四阅读程序题(每小题5 分,共 30 分)1. 写出下面程序的运行结果。 #include int f(int num,int run) strtic int fact,i; if(run=0) fact=1; i=1; fact *=
39、i; if(+i=num) f(num,1); return(fact); void main() int i=0; printf(f=%dn ,f(3,0); 2. 写出下面程序的运行结果。 #include void main() int a,b; for(a=1,b=1;a=20) break; if(b%3=1) b+=3; continue; b-=5; printf(%d,%dn,a,b); 3. 写出下面程序的运行结果。 #include void main() char ch25=1234, 5678 ,*p2; int j,k,s=0; for(k=0;k2;k+) pk=c
40、hk; for(k=0;k0 &pkj=9;j+=2) s=10*s+pkj-0; printf(s=%dn,s); 4. 写出下面程序在输入数据为:a4BZ!( 表示按 Enter 键) 时的运行结果。 #include void main() char ps80,*str; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 34 页 - - - - - - - - - 14 char c; gets(ps); str=ps; while(c=*str)!=0 ) if
41、(c= a& c=A& cZ&cz) c=c-26; *str=c; str+; printf(%sn,ps); 5. 写出下面程序的运行结果。 #include void main() long fun(int n); printf(%ldn ,fun(4); long fun(int n) long s; if(n=1n=2) s=2; else s=n+fun(n-1); return s; 6. 写出下面程序的运行结果。 #include void main() void fun(int *x,int *y); int a=1,2,3,4,j,x=0; for(j=0;j= a & x
42、=z i=i vj+1 四. 阅读程序题 ( 每小题 5 分, 共 30 分) 1. f=6 2. 8, 17 3. s=1357 4. e4FD! 5. 9 6. 4321 五. 编程序 ( 每小题 10 分, 共 20 分) 1. 参考程序及评分标准:#include viod main() int check(int n); int n; for(n=1;n=100;n+) if(check(n) printf(%d,%dn ,n,n*n); 5分int check(int n) int k; k=n*n; if(k%10=nk%100=n) return 1; else return
43、0; 5分2. 参考程序及评分标准一:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 34 页 - - - - - - - - - 17 #include #define N 5 viod main() int aN+1,x,i,k; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); /2分 for(i=0;aixⅈk-) ak=ak-1; ai=x; /3分 for(i=0;i=N;i+) printf(%5d,ai); p
44、utchar(n ); /2分 参考程序及评分标准二:#include #define N 5 viod main() void insert(int v,int n,int x); int aN+1,x,i; for(i=0;iN;i+) scanf(%d,&ai); scanf(%d,&x); /2分 insert(a,N,x); /2分 for(i=0;i=N;i+) printf(%5d,ai); putchar(n ); /2分 void insert(int v,int n,int x) int i,k; for(i=0;vixⅈk-) vk=vk-1; vi=x; /2分
45、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 34 页 - - - - - - - - - 18 二级 C 语言笔试试卷 (A) 2008 年 4 月注意事项: 1. 一题答案填涂在答题卡上 2.二、三、四、五题答案做在答题纸上一. 单项选择题。 (每小题 1 分,共 20 分)1. C 程序的源程序由预处理命令和()组成。 (A)函数(B)语句(C)保留字(D)标始符2. 下面程序段中,与if (x%2 )中的 x%2所表示条件等价的是() 。 scanf(%d ,
46、&x) ;( A)x%2=0 (B)x%2 !=1 (C) x%2!=0 (D) x%2=1 3. 执行下面C语言序列后,变量b 的值是() 。 Int a,b,c; a=b=c=1 ; +a|+b&+c ; ( A)错误(B)0 (C) 2 (D) 1 4. 设有 C语句 int a34;, 则每次移动过a数组一行元素的指针变量定义形式是() 。( A)int *p;(B)int *p; (C) int(*p)4; (D) int *p4;5. 设有整型变量a, 实型变量f, 双精度型变量x,则表达式10+b+x*f 值的类型为() 。( A)int (B)float (C)double (
47、D)不能确定6. C 语言中规定,函数调用中用简单变量做实参时,它和对应形参之间的数据传递方式是() 。( A)地址传递(B)单向值传递(C) 由实参传给形参,再由形参传回给实参 (D) 由用户指定传递方式7. 下面程序的输出是() 。 #include void main() int x=10,y=3; printf(%dn,y=x/y); ( A)0 (B)1 (C) 3 (D) 不确定的值8. 执行下面的程序段后,B的值为() 。 int x=35; char z= A; int B; B=(X&5)&(za); (A)0(B) 1 (C)2 (D) 3 9. 以下程序的输出结果为()
48、。 #include void main() int i=0; for(;) if(i+=5) break; printf(%dn,i); (A)0(B) 5 (C) 6 (D) 前 3 个选项都错名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 34 页 - - - - - - - - - 19 10. 已知: char s4=cba;char *p; 执行语句列p=s;printf(%cn,*p+1);后,其输出为() 。(A)c(B) b (C) a (D) d 1
49、1. 运行完下列程序后,在屏幕上的内容是() 。 #include void main() int a=0; a+=a=12; printf(%dn,a); (A)0(B)6 (C) 12 (D) 24 12. 已知: int x= 1 , y = 2, z =0,则执行 z=xy?(10+x,10-x):(20+y,20-y)后, z 的值为() 。( A)11(B)9 (C) 18 (D) 22 13. 若已定义x 和 y 为 double 类型,则表达式x=2,y=x+10/4的值是()( A)2(B) 4 (C)4.0 (D) 4.5 14. 以下程序的输出结果是() 。 #inclu
50、de int x=3,y=4; void main() int x=0; x+=y+; printf(%d ,x); ( A)3 (B)4 (C)5 (D) 6 15. 在下面 C语言的函数说明语句中,正确的是() 。( A)int fun(int x, int y); (B)int fun(int x,y); (C) int fun(x,y); (D) int fun(int x; int y); 16. 有定义: int x,y=10,*p=&y;, 则能使得x 的值也等于10 的语句是() 。( A)x=p; (B)x=&p; (C)x=&y; (D) x=*p; 17. 有定义 : i