历届重庆市计算机C语言二级考试试题及答案.doc

上传人:h**** 文档编号:154302 上传时间:2018-07-11 格式:DOC 页数:20 大小:143.50KB
下载 相关 举报
历届重庆市计算机C语言二级考试试题及答案.doc_第1页
第1页 / 共20页
历届重庆市计算机C语言二级考试试题及答案.doc_第2页
第2页 / 共20页
历届重庆市计算机C语言二级考试试题及答案.doc_第3页
第3页 / 共20页
历届重庆市计算机C语言二级考试试题及答案.doc_第4页
第4页 / 共20页
历届重庆市计算机C语言二级考试试题及答案.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、二级 C 语言笔试试卷 (A) 2007 年 1 注意事项: 1.一、二题为客观题,请将答案涂在机读答题卡上 2. 三、四、五、六题为主观题,请将答案做在答题纸上 一、单项选择题。(每小题分,共 20 分) 1 在 C 程序的函数调用时,主调函数中的实参和被调函数中的形参( )。 (A) 个数、次序必须相同,但数据类型可以不考虑 (B) 个数、次序和对应参数的数据类型都应该相同 (C) 个数、次序和数据类型均可以不相同 (D) 对应参数数据类型应相同,但个数和次序可以不考虑 2 如 a 为 int 型,则与表达式 a 等价的 C语言关系表达式是( ) (A) a0 (B) a!=0 (C) a

2、=0 (D) ab (B) p-a (C) +(p-a) (D) (p+)-a 9 以下程序的输出结果是( )。 int x=3,y=4; void main( ) int x,y=5; x=y+; printf(“%d“,x); (A) 3 (B) 4 (C) 5 (D) 6 10 在 C 语言中,函数默认的存储类型为( )。 (A) auto (B) register(C)static (D) extern 11 有定义: float y,*p=,假定变量y 在内存中所占地址为 100103。那么p 的值为( )。 (A) 100 (B) 101 (C) 102 (D) 103 12. 有

3、定义: int a10, n, *p1=a,*p2=,则正确的赋值语句为( )。 (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) 10 14 执行下面程序中输出语句后, a 的值是 ( )。 #include main( ) int a; printf(“%dn“,(a=3*5,a*4,a); (A)65 (B)20 (C)15 (D)10 15 若有定义 int a,b,x;且变量都已正确赋值,下面选项中合法的 if 语句是

4、( )。 (A)if(a=b) x+; (B)if(a=b) 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)0 17 若变量 t 为 double 类型,表达式(t=1,t+5,t)的值是 ( )。 (A)1 (B)6.0 (C)1.0 (D)6 18 在 C 语言中,下面关于数组的描述中正确的是 ( )。 (A)数组的大小是固定

5、的,但可以有不同类型的数组元素 (B)数组的大小是可变的,但所有数组元素的类型必须相同 (C)数组的大小是固定的,所有数 组元素的类型必须相同 (D)数组的大小是可变的,可以有不同的类型的数组元素 19 下述程序的输出结果是( )。 #include void main() int a,b,c=241; a=c/100%9; b=-1 printf(“%d,%dn“,a,b); (A)2,0 (B)2,1 (C)6,1 (D)0,-1 20.若有以下说明和语句,则下列引用方式中不正确的是( )。 struct worker int no; char *name; work,*p= (A)wor

6、k.no (B)(*p).no (C)p-no (D)work-no 二、基本概念选择填空题( 本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白处。每空 2 分,共10 分 ) 1 在 C 语言中,函数一般由两个部分组成,它们是函数首部和 。 2 任何程序都可调用标准函数 exit(),当它被调用时就 程序的执行。 3 一个 C 语言程序在可以被执行之前,需要经过的 4 个处理程序是:编辑程序、预处理程序、编译程序和 。 4 在 C 语言中无固有的输入和输出语句,但是用 C 语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由 提供。 5 C 标准库 函数 rew

7、ind 的作用是 。 备选项: (A) 主函数 (B) 函数体 (C) 函数首部 (D) 用户自定义函数 (E) 终止 (F) 使读写指针指向文件的开头 (G) 标准 I/O库 /系统 (H) 连接程序 (J) 判断文 件指针是否指向文件末尾 三、程序填空题。(每空 2 分,共 20 分) 。 1. 下面程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母后输出。请填空完善程序。 #include void main() char c; while(c= )!=n) if(c=a int i; char c; if( =NULL) printf(“Cant open this fi

8、le!n“); return; for(i=0;i void main() char *a=“abcd“,“12345“,“efghijk“,“67890“; char ; int j=0; p=a; for(;j void main() char str=“abcdefg“,*p1,*p2,ch; p1=p2=str; while(*p2!=0) p2+; ; while(p1 #define N 11 void yh(int aN) int j,k; for(j=1;j void main() void fun(int *k); int w=5; fun( void fun(int *k)

9、 (*k)+; printf(“%dn“,*k+); 2下面程序的输出结果是( )。 #include void main() char ch25=“1234“,“5678“,*p2; int j,k,s=0; for(k=0;k0 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 b) static int m=1,n=2; n+=m+1; m=n+a+b; return m; 4下面程序的输出结果是( )。 #include vo

10、id main() int a10=1,2,3,4,5,6,7,8,9,10,k,s,i; double ave; for(k=s=i=0;i,则输出结果是( )。 #include void main() char s40,c,*str=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) unsign

11、ed k=1; do k*=num%10; 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); cha

12、r s81,*ds; gets(s); ds=delspace(s); printf(“nResult: %sn“, ds); 2. 已知两个 3 位数 abc 和 cba 之和为 1333(即 abc+cba=1333),编程序求出 3 个数字 a、 b 和 c。 二级 C 语言笔试试卷 (A) 2007 年 2 注意事项: 1.一题为客观题,请将答案涂在机读答题卡上 2.请将二、三、四、五题的答案做在答题纸上 一 .单项选择题。(每小题 1 分,共 20 分) 1. 一个 C 程序的执行是从( )。 ( A)本程序的 main 函数开始 ( B)本程序文件的第一个函数开始,到本程序文件的最

13、后一个函数结束 ( C)本程序的 main 函数开始,到本程序文件的最后一个函数结束 ( D)本程序文件的第一个函数开始,到本程序 main 函数结束 2. 设有 C 语句: int x=3, y=4,z=5;,则下面表达式中值为 0 的是( )。 ( A ) x m=(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 );

14、 ( A)有语法错误不能通过编译 ( B)输出: * ( C)可以通过编译,但不能通过连接,因而不能运行 ( 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 所指节点插入到链表末尾的一组语

15、句是( )。 ( A) q next = NULL; p=p next; p next=q; ( B) p=p next;q next=p next; p next=q; ( C) p= p next;q next=p; p next=q; ( D ) p= (*p).next; (*q).next = (*p).next; (*p).next = q; 10. 有定义 int a=3,b=4,c=5;执行完表达式a+-b char c2; ; void main () union ss x ; x.c0=10; x.c1=1; printf( %d ,x.i); ( A) 11 (B) 26

16、6 (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 程序运行后变量 x 的值是( )。 #include void main() int a,b,c,x;

17、a=b=c=0; x=35; if(!a) x-; else if(b) ; if (c) x=3; else x=4; printf ( %dn ,x); ( A) 34 (B) 4 (C) 35 (D) 3 15. 设有以下宏定义: #define N 3 #define Y(n) (N+1*n) 则执行语句: z=2 *(N*Y(5+1); 后,z 的值为( )。 ( A) 30 (B) 72 (C) 48 (D) 54 16. 在以下的四个运算符中,优先级最低的运算符是( )。 ( A) void main() float sum=0.0,ave,a; int n=0; printf(

18、 nter markn ); scanf( %, ); while(a=0.0) sum=sum+a; ; scanf( %, ); ave=sum/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(p1 void main() char str80,*sp; int n; for(n=0;n int fun(ch

19、ar *s,char *t) while(*t+=*s+ 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 %d

20、n ,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= x=99; sc

21、anf( %d , insline(s,p,x,k); for(k=0;k int f(int num,int run) strtic int fact,i; if(run=0) fact=1; i=1; fact *=i; if(+i 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

22、(k=0;k 0char c; gets(ps); str=ps; while(c=*str)!= 0 ) if(c= a *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=1 n=2) s=2; else s=n+fun(n-1); return s; 6. 写出下面程序的运行结果。 #include void main() void fun(int *x,int *y)

23、; int a=1,2,3,4,j,x=0; for(j=0;j 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 for(;) if(i+=5) break; printf( %dn ,i); ( A) 0 ( B) 5 (C) 6 (D) 前 3 个选项都错 10. 已知: char s4= cba ;char *p; 执行语句列 p=s;printf( %cn ,*p+

24、1);后,其输出为( )。 ( A) c ( B) b (C) a (D) d 11. 运行完下列程序后,在屏幕上的内容是( )。 #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

25、的值是( ) ( A ) 2 ( B) 4 (C)4.0 (D) 4.5 14. 以下程序的输出结果是( )。 #include 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=, 则

26、 能使得 x 的值也等于 10 的语句是( )。 ( A) x=p; ( B) x= (C)x= (D) x=*p; 17. 有定义 : int a54, (*p)4=a;, 则 *( *( p+2) +3)等价于( )。 ( A) a20 ( B) a21 (C) a22 (D) a23 18. 有定义: char* s= t NameAddress ;, 那么 strlen(s)等于( )。 ( A) 15 ( B) 16 (C) 17 (D) 18 19.设有定义 int m=1,n=-1;则执行语句printf( %dn ,(m-后的输出结果是()。 ( A) -1 ( B) 0 (C

27、) 1 (D) 2 20. 设有 C 语句: struct Tint n; double x;d,*p;, 若要使 p 指向结构体变量中的成员 n,正确的赋值语句是( )。 ( A ) p=&d.n ( B) *p=d.n (C) p=(struct T *)&d.n (D) p=(struct T *)d.n 二 . 基本概念选择填空题 (本大题后面有若干备选项,请选择合适的备选项并将其号码填入各个小题的空白处。没空 2 分,共 10 分) 1.一个 C 程序无论由多 少个函数组成,只能有一个主函数,其函数名是 。 2. 表达式 x*=x+b 等 价 于 表 达 式 。 3.在 C 语言中,

28、 语句是一条限定转移语句,其功能是提前结束本次循环体的执行过程而直接进入下一次循环。 4.结构体数据类型仍然是一类变量的抽象形式,系统不会为数据类型分配存储空间。要 使 用 结 构 体 类 型 数 据 , 必 须 要 。 5.调用 feof 库函数可以判断文件内部读写位置指针是否达到文件尾,当读写位置指针到达文 件尾时,该函数的返回值是: 。 备选项: (A ) void (B)x=x*x+b (C)continue (D)x=x*(x+b) (E)break (F)定义结构体成员 (G)定义结构体类型变量 (H)定义联合体类型变量 (I)0 (J) 非 0 (K)main (L)goto 三 .程序填空题。(每空 2 分,共 20 分)。 1. 程序的功能是:统计输入字符串中小写字母的个数。 #include void main()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。