好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

二级C语言笔试试卷(A)

2007年1 注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上 2. 三、四、五、六题为主观题,请将答案做在答题纸上 一、单项选择题。(每小题1分,共20分) 相等,最好使用下列关系表达式( )。

(A)x==y (B)x-y==0

(C) fabs(x-y)<1e-8 (D)labs(x-y)<1e-8

8.若有以下的定义、说明和语句,则值为101的表达式是( )。

struct CW { int a;

1.在C程序的函数调用时,主调函数中的实参和被调函数中的形参( )。

(A) 个数、次序必须相同,但数据类型可以不考虑

(B) 个数、次序和对应参数的数据类型都应该相同

(C) 个数、次序和数据类型均可以不相同

(D) 对应参数数据类型应相同,但个数和次序可以不考虑

2.如a为int型,则与表达式a等价的C语言关系表达式是( )

(A) a>0 (B) a!=0 (C) a==0 (D) a<0 3.循环语句

for(a=0,b=0;(b!=45)||(a<5);a++);的循环次数是( )

(A) 4 (B) 3 (C) 5 (D) 无数多次

4.设有字符数组a,则正确的输入语句是( )。

(A) gets('a'); (B) scanf(\

(C) scanf(\ (D) gets(\ 5. enum

color{red,green,yellow=5,white,black};定义了一枚举类型。编译程序为值表中各标识符分配的枚举值依次为( )。

(A)1、2、3、4、5 (B)0、1、5、2、3 (C)0、1、5、6、7 (D)3、4、5、6、7

6.运行完下列程序后,在屏幕上的内容是( )。

void main () { int a=0; a+=(a=12);

printf (\}

(A)0 (B)6 (C)12 (D)24

7.若x,y为实数类型的变量,要判断x,y

int *b; }*p;

int x0[]={11,12},x1[]={31,32}; struct CW x[2]={100,x0,300,x1}; p=x;

(A) *p->b (B) p->a (C) ++(p->a) (D) (p++)->a 9.以下程序的输出结果是( )。

int x=3,y=4; void main( ) { int x,y=5; x=y++;

printf(\}

(A)3 (B) 4 (C) 5 (D) 6

10.在C语言中,函数默认的存储类型为( )。

(A) auto (B) register (C)static (D) extern

11.有定义:float y,*p=&y;,假定变量

y在内存中所占地址为100~103。那么p的值为( )。

(A) 100 (B) 101 (C) 102 (D) 103 12. 有定义:int a[10], n,

*p1=a,*p2=&a[9];,则正确的赋值语句为( )。

(A) n=p2-p1; (B) n=p2*p1; (C) n=p2+p1; (D) n=p1/p2; 13.调用strlen(\的结果为( )。

(A) 4 (B) 5 (C) 8 (D) 10

14.执行下面程序中输出语句后,a的值是( )。

#include main( ) { int a;

printf(\; }

(A)65 (B)20 (C)15 (D)10

15.若有定义int a,b,x;且变量都已正确赋值,下面选项中合法的if语句是( )。

(A)if(a==b) x++; (B)if(a=

(C)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(\}

(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)数组的大小是固定的,但可以有不同类型的数组元素

(B)数组的大小是可变的,但所有数组元素的类型必须相同 (C)数组的大小是固定的,所有数组元素的类型必须相同

(D)数组的大小是可变的,可以有不同的类型的数组元素

19.下述程序的输出结果是( )。

#include void main()

{ int a,b,c=241; a=c/100%9; b=-1&&-1;

printf(\}

(A)2,0 (B)2,1 (C)6,1 (D)0,-1 20.若有以下说明和语句,则下列引用方式中不正确的是( )。 struct worker { int no;

char *name; }work,*p=&work;

(A)work.no (B)(*p).no (C)p->no (D)work->no 二、基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其

号码填入各小题的空白处。每空2分,共10分) 1.在C语言中,函数一般由两个部分组成,它们是函数首部和 ① 。

2.任何程序都可调用标准函数exit(),当它被调用时就 ② 程序的执行。

3.一个C语言程序在可以被执行之前,需要经过的4个处理程序是:编辑程序、预处理程序、编译程序和 ③ 。

4.在C语言中无固有的输入和输出语句,但是用C语言编写的程序可以用函数调用的形式来实现输入、输出,这些函数由 ④ 提供。

5.C标准库函数rewind的作用是 ⑤ 。 备选项:

(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'&&c<='z') printf(\}

2.下面程序的功能是从当前目录下的文本文件“f1.txt”中读取前10个字符,依次显示在屏幕上;如果文本文件中不足10个字符,则读完为止;请填空完善程序。

#include void main() { FILE *fp; int i; char c;

if( ② ==NULL)

{ printf(\open this file!\\n\

return;

}

for(i=0;i<10;i++) { if(feof(fp)) break; c=fgetc(fp); putchar(c); }

fclose(fp); }

3. 下面程序的功能是输出数组中的各字符串,请填空完成程序。

#include void main() { char

*a[]={\67890\

char ③ ; int j=0; p=a;

for(;j<4;j++)

④ ; }

4. 下面函数mfc用于求取两个正整数的最大公因子,请填空完善函数。

int mcf(int a,int b) { int temp; while(b)

{ temp= ⑤ ; a=b; b=temp; }

return a; }

5. 下面程序的功能是将字符串str的内容颠倒过来并输出,请填空完善程序。

#include void main() { char

str[]={\ p1=p2=str;

while(*p2!='\\0') p2++;

⑥ ; while(p1

{ ch=*p1,*p1=*p2,*p2=ch; ⑦ ; p2--; }

puts(str); }

6. 下面函数yh的功能是构成一个杨辉三角形,请填空完成该函数。

#include

#define N 11

void yh(int a[][N]) { int j,k;

for(j=1;j

a[j][j]= ⑧ ; }

for( ⑨ ;j

a[j][k]= ⑩ +a[j-1][k]; }

四、阅读程序题(每小题5分,共30分 1.下面程序的输出结果是( )。

#include void main()

{ void fun(int *k); int w=5; fun(&w); }

void fun(int *k) { (*k)++;

printf(\}

2.下面程序的输出结果是( )。

#include void main() { char

ch[2][5]={\ int j,k,s=0; for(k=0;k<2;k++) p[k]=ch[k]; for(k=0;k<2;k++) for(j=0;p[k][j]>'0'&&p[k][j]<='9';j+=2) s=10*s+p[k][j]-'0'; printf(\}

3.下面程序的输出结果是( )。

#include int func(int,int); void main()

{ int k=4,m=1,p; p=func(k,m); printf(\ p=func(k,m); printf(\}

int func(int a,int b)

{ static int m=1,n=2; n+=m+1; m=n+a+b; return m; }

4.下面程序的输出结果是( )。

#include void main() { int

a[10]={1,2,3,4,5,6,7,8,9,10},k,s,i; double ave; for(k=s=i=0;i<10;i++) { if(a[i]%2) continue; s+=a[i]; k++; } if(k!=0) { ave=s/k; printf(\ } }

5.在下列程序中,若输入为:today is Monday!,则输出结果是( )。

#include void main()

{ char s[40],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(\}

6. 下列程序的输出结果是( )。#include

unsigned f(unsigned num) { unsigned k=1; do

{ k*=num; num/=10; }while(num); return k; }

void main()

{ int x=35,y=550; printf(\} 五、编程序。(每小题10分,共20分) 1.函数delspace的功能是删除一个字符串中所有的空格。例如,输入字符串为\则输出结果为\。测试用主函数如下所示,请编制函数delspace。 #include #include void main()

{ char *delspace(char *str); char s[81],*ds; gets(s);

ds=delspace(s);

printf(\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)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

(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)!((x

3. 以下有关宏替换的叙述不正确的是( )。

(A)宏替换不占用运行时间(B)宏名无类型

(C)宏替换只是字符串替换;(D)宏替换是在运行时进行的

4. 在标准库函数的调用形式“fread(buffer,size,count,fp);”中,参数buffer代表的是( )。

(A)一个整型变量,代表要读入的数据总数

(B)一个文件指针,指向要读的文件 (C)一个指针,指向读入数据存放的首地址

(D)一个存储区,存放要读的数据项

5. 位运算中,操作数每左移一位,在没有 (A)q->next = NULL; p=p->next; p溢出的情况下其结果相当于( )。 ->next=q; (A)操作数乘以2 ( B ) p= p - >next;q ->next=p->next; (B) 操作数除以2 p->next=q;

(C) 操作数除以4 ( C ) p= p->next;q->next=p; p(D) 操作数乘以4 ->next=q; 6. 下面程序运行后,变量m的值为( )。 (D)p= (*p).next; (*q).next =

(*p).next; (*p).next = q; #include void main() 10. 有定义int a=3,b=4,c=5;执行完表达式 { int m, n, k; a++>--b&&b++>c--&&++c后,a,b,c的 m=(n=4)+(k=10-7); 值分别为( ) printf(〞m=%d\\n”,m); (A)3 4 5 (B) 4 3 5

} (C) 4 4 4 (D) 4 4 5 (A)4 (B) 3 11. 下列程序的执行结果是( )。 (C) 7 (D)14 #include 7. 下面程序运行结果(或出现的情况)是 union ss { short int i; ( )。 char c[2]; #include }; void main() { int x=3,y=0,z=0; void main () if (x=y+z) { union ss x ;

x.c[0]=10; printf(〞****〞); else x.c[1]=1; printf(〞####\\n〞); printf(〞%d〞,x.i);

} } (A)有语法错误不能通过编译 (A)11 (B) 266

(C) 265 (D) 138 (B)输出:**** (C)可以通过编译,但不能通过连接,12. 若有C语言int i = 10;,则执行下面程因而不能运行 序段后变量i 的值是( )。

switch (i) (D)输出:#### { case 9: i+=1; 8. 已有定义int k=2; int *ptrl, *ptr2,且ptr1 case 10: 和ptr2 均已指向变量k,下面不能正确执 case 11: i-=1; 行的赋值语句是( )。 default: i+=1; (A)k =*ptr1+*ptr2;

(B) ptr2 = k; }

(C) ptr1=ptr2; ( A ) 10 (B) 11

(C) 12 (D) 9 (D) k = *ptr1*(*ptr2); 9. 若有已经建好的链表结构如下,指针平13. 在下列选项中,不正确的赋值语句是p、q分别指向图示节点(b节点为插入( )。 c节点前的链表末尾); (A)t/=5; (B) a b n1=(n2=(n3=0)); (C) k=i= = j; (D) ∧ c a=b+c=1; 14. 下面C程序运行后变量x的值是 p ( )。 q #include void main() { int a,b,c,x; 不能实现将q所指节点插入到链表末尾的 a=b=c=0; x=35; 一组语句是( )。

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

二级C语言笔试试卷(A)2007年1注意事项:1.一、二题为客观题,请将答案涂在机读答题卡上2.三、四、五、六题为主观题,请将答案做在答题纸上一、单项选择题。(每小题1分,共20分)相等,最好使用下列关系表达式()。(A)x==y(B)x-y==
推荐度:
点击下载文档文档为doc格式
7a9z2734tp4i6jo0x1m776vac3ljqt012dk
领取福利

微信扫码领取福利

微信扫码分享