重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx

上传人:b****5 文档编号:20193803 上传时间:2023-01-17 格式:DOCX 页数:51 大小:330.87KB
下载 相关 举报
重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx_第1页
第1页 / 共51页
重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx_第2页
第2页 / 共51页
重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx_第3页
第3页 / 共51页
重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx_第4页
第4页 / 共51页
重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx

《重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx》由会员分享,可在线阅读,更多相关《重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx(51页珍藏版)》请在冰豆网上搜索。

重庆市计算机等级考试C语言二级考试试题及答案Word下载.docx

编译程序为值表中各标识符分

voidmain()

{inta=0;

a+=(a=12);

printf("

%d\n"

}

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

7.若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式

15.若有定义inta,b,x;

且变量都已正确赋值,下面选项中合法的if语句是(

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

(B)if(a=<

b)x++;

(C)if(a<

>

(D)if(a=>

16.执行下面的程序后,变量a的值是(

#include<

stdio.h>

#defineSQR(X)X*X

inta=10,k=2,m=3;

a/=SQR(m)/SQR(k);

printf("

%d\n"

voidmain()

{

(A)10(B)1(C)5

17.若变量t为double类型,表达式(t=1,t+5,t)

(A)1(B)6.0(C)1.0

18.

在C语言中,下面关于数组的描述中正确的是

二、基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项并将其号码填入各小题的空白

处。

每空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.下面程序的功能是从键盘上输入一行字符,将其中的小写字母转换为大写字母后输出。

请填空完善程序。

#inelude<

{charc;

while((c=\n'

if(c>

='

&

c<

z'

)printf("

c-32);

2.下面程序的功能是从当前目录下的文本文件“f1.txt”中读取前10个字符,依次显示在屏幕上;

如果

文本文件中不足10个字符,则读完为止;

请填空完善程序。

#include<

{FILE*fp;

inti;

charc;

if(②==NULL)

{printf("

Can'

topenthisfile!

\n”);

return;

for(i=0;

i<

10;

i++)

{if(feof(fp))

break;

c=fgetc(fp);

putchar(c);

fclose(fp);

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

#include<

{char*a[]={"

abcd"

"

12345"

efghijk"

67890"

};

char③;

intj=0;

p=a;

for(;

j<

4;

j++)

④;

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

intmcf(inta,intb)

{inttemp;

while(b)

{temp=⑤;

a=b;

b=temp;

returna;

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

{charstr[]={"

abcdefg"

},*p1,*p2,ch;

p1=p2=str;

while(*p2!

\0'

p2++;

⑥;

while(p1<

p2)

{ch=*p1,*p^*p2,*p2=ch;

⑦;

p2--;

puts(str);

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

#defineN11

voidyh(inta[][N])

{intj,k;

for(j=1;

N;

{a[j][1]=1;

a[j][j]=⑧;

for(⑨;

for(k=2;

k<

j;

k++)

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

四、阅读程序题(每小题5分,共30分

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

{voidfun(int*k);

intw=5;

fun(&

w);

voidfun(int*k)

{(*k)++;

printf("

*k++);

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

{charch[2][5]={"

1234"

5678"

},*p[2];

intj,k,s=0;

for(k=0;

2;

p[k]=ch[k];

k++)for(j=0;

p[k][j]>

'

0'

p[k][j]<

9'

;

j+=2)s=1O*s+p[k][j]-'

O'

s=%d\n"

s);

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

intfunc(int,int);

{intk=4,m=1,p;

p=func(k,m);

%d,"

p);

intfunc(inta,intb)

{staticintm=1,n=2;

n+=m+1;

m=n+a+b;

returnm;

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

{inta[10]={1,2,3,4,5,6,7,8,9,10},k,s,i;

doubleave;

for(k=s=i=0;

{if(a[i]%2)

continue;

s+=a[i];

k++;

}if(k!

=0)

{ave=s/k;

%d,%f\n"

k,ave);

,则输出结果是()。

5.在下列程序中,若输入为:

todayisMonday!

<

CR>

voidmain()

{chars[40],c,*str=s;

intnum=0,word=0;

gets(str);

while((c=*str++)!

{if(c=='

word=0;

elseif(word==0)

{word=1;

num++;

}printf("

%dwords\n"

num);

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

unsignedf(unsignednum)

{unsignedk=1;

do

{k*=num%10;

num/=10;

}while(num);

returnk;

{intx=35,y=550;

%d,%d\n"

f(x),f(y));

五、编程序。

(每小题10分,共20分)

1.函数delspace的功能是删除一个字符串中所有的空格。

例如,输入字符串为"

Thisisastring"

输出结果为"

Thisisastring"

测试用主函数如下所示,请编制函数delspace。

string.h>

{char*delspace(char*str);

chars[81],*ds;

gets(s);

ds=delspace(s);

\nResult:

%s\n"

ds);

2.已知两个3位数abc和cba之和为1333(即abc+cba=1333),编程序求出3个数字a、b和c。

二级C语言笔试试卷(A)参考答案

(2007年4月)

(每小题1分,共20分)

BBDCCDCCCDAAACABCCBD

4.5,6.0000005.3words6.15,0

1.参考程序及评分标准

char*delspace(char*str)

{char*p=str;

〃2分

while(*p)

{if(*p=='

strcpy(p,p+1);

else

p++;

}〃6分

returnstr;

2.参考程序及评分标准

//参考程序一一

{intn,a,b,c;

for(n=100;

*1000;

n++)

{a=n/100;

b=n/10%10;

c=n%10;

if(a*100+b*10+c+c*100+b*10+a==1333)

abcis:

%d%d%d\n"

a,b,c);

}//8分

//参考程序二

{intn,m,a,b,c;

//2分

for(a=1;

a<

a++)

for(b=0;

b<

b++)for(c=0;

c++){n=a*100+b*10+c;

m=c*100+b*10+a;

if(n+m==1333)

//8分

2007年11月

1.一题为客观题,请将答案涂在机读答题卡上

2.请将二、三、四、五题的答案做在答题纸上

一.单项选择题。

(每小题1分,共20分)

1.一个C程序的执行是从()。

(A)本程序的main函数开始

(B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

(C)本程序的main函数开始,到本程序文件的最后一个函数结束

(D)本程序文件的第一个函数开始,到本程序main函数结束

2.设有C语句:

intx=3,y=4,z=5;

则下面表达式中值为0的是()。

(A)x&

y(B)x<

=y

(C)x||y+z&

y-z(D)!

((x<

y)&

!

z||1))

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

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

(C)宏替换只是字符串替换;

(D)宏替换是在运行时进行的

4.在标准库函数的调用形式"

fread(buffer,size,count,fp);

”中,参数buffer代表的是()。

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

(B)一个文件指针,指向要读的文件

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

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

5.位运算中,操作数每左移一位,在没有溢出的情况下其结果相当于(

(A)操作数乘以2

(B)操作数除以2

(C)操作数除以4

操作数乘以4

6.下面程序运行后,变量m的值为(

{intm,n,k;

m=(n=4)+(k=10-7);

printf(”m=%d\n”,m);

(A)4(B)3

(C)7

(D)14

7.下面程序运行结果(或出现的情况)是()。

{intx=3,y=0,z=0;

if(x=y+z)

printf(”****"

printf("

####\n"

(A)有语法错误不能通过编译

(B)输出:

****

(C)可以通过编译,但不能通过连接,因而不能运行

switch(i)

{case9:

i+=1;

case10:

case11:

i-=1;

default:

(D)9

(D)a=b+c=1;

(A)10(B)11(C)12

13.在下列选项中,不正确的赋值语句是()。

(A)t/=5;

(B)n1=(n2=(n3=0));

(C)k=i==j;

14.下面C程序运行后变量x的值是()。

{inta,b,c,x;

a=b=c=0;

x=35;

if(!

a)

x--;

elseif(b)

if(c)

x=3;

x=4;

printf(”%d\n"

x);

(A)34(B)4(C)35(D)3

15.设有以下宏定义:

#defineN3

#defineY(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,则执行下面C语句的结果是()。

printf("

%c"

'

D'

-'

8'

+'

5'

(A)66(B)A(C)B(D)E

18.设有以下语句:

inta=3,b=6,c;

c=aAb<

执行后c的低8位二进制值是()。

(A)00011011(B)00010100(C)00011100(D)00011000

19.在C语言中,以下叙述错误的是()。

(A)函数被调用时,系统才为形参分配内存

(B)实参和对应形参的数据类型必须一致

(C)实参可以是变量、常量或表达式

(D)形参可以是变量、常量或表达式

20.字符串常量"

abc\nt\012\xa1*2"

在内存中所占的存储空间节数是()。

(A)11(B)13(C)15(D)18

二•基本概念选择填空题(本大题后面有若干备选项,请选择合适的备选项,并讲其号码填入各小题的空白处。

每空2分,共10分)

1.函数首部intmain(intargc,char*argv[])中argc表示的是①。

2.C语言能处理的文件类型可以是文本文件和②~。

3.下面语句定义了共用体(联合体)变量a,则a占用③—个字节。

uniondata{shortinti;

charc;

doubled;

}a;

4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与④组成配对关系。

5.宏定义中的宏名不能包含⑤。

备选项:

(A)空格

(B)二进制文件

(C)数字

(D)在其之前未配对的if

(E)参数字符串

(F)命令行参数的个数

(G)11

(H)在其之前最近的未配对的if

(J)8

(K)在定义该函数时所指定的数据类型

(L)下划线

(M)程序文件

3.程序填空题(每空2分,共20分)

1.下面程序的功能是:

从键盘上输入若干个学生的成绩(用负数结束输入过程),统计计算出平均成绩;

请填空完成程序。

{floatsum=0.0,ave,a;

intn=0;

Entermark'

n"

seanf("

%f"

&

a);

while(a>

=0.0)

{sum=sum+a;

1;

scanf("

,&

a);

ave=sum/n;

ave=%f\n"

ave);

2.下面程序的功能是将一个字符串str的内容颠倒并输出,请填空完成程序。

{charstr[]={"

abcdefg"

};

char*p1,*p2,ch;

p1=str;

p2=str;

=z\0z)

p2++

2;

{ch=*p1,*p1=*p2,*p2=ch;

3;

3.下面程序从终端输入一行字符串存入字符数组,然后输出;

{charstr[80],*sp;

intn;

for(n=0;

n<

80;

{str[n]=④;

if(str[n]==/\n/)

str[n]=/\0/;

sp=str;

while(*sp)

putchar(⑤);

4.

0值,否则返回两个字符串中

下面函数fun的功能是比较两个字符串的大小,若两字符串相同则返回第一个不相同字符之差;

请填空完成函数。

intfun(char*s,char*t)

{while(*t++==*s++&

*t!

=/\0/&

*s!

=z\0/)

5

return(⑥);

{charstr1[80],str2[80];

gets(strl);

gets(str2);

%d\n"

fun(str1,str2));

5.下面程序的功能是统计字符串中大小写字母的个数,请填空完成程序。

#defineIA(x)⑦

{charstr[80],*s,ch;

intcount=0;

gets(str);

s=str;

while(*s)

{ch=*s++;

if(IA(ch))count++;

thesumis%d\n"

count);

6.

x添

下面函数在一维数组v中将x插入到下标为i(i>

=0)的元素前,如果i大于等于元素的个数,则

加到v数组原数据的末尾。

V数组原有元素个数保存在指针n所指向的变量中,插入后元素个数加

voidinsline(double[],int*n,doublex,int,i)

{intj;

if(⑧)

for(j=*n-1;

⑨;

j--)

⑩=vj

i=*n;

v[i]=x;

(*n)++;

{doubles[10]={11,23,65,78},x;

intm=4,*p=&

m,k;

x=99;

%d'

&

k);

insline(s,p,x,k);

m;

k++)printf("

s[k]);

putchar('

\n'

4.阅读程序题(每小题5分,共30分)

1.写出下面程序的运行结果。

intf(intnum,intrun)

{strticintfact,i;

if(run==O)

{fact=1;

i=1;

fact*=i;

if(++i<

=num)

f(num,1);

return(fact);

{inti=0;

f=%d\n"

f(3,0));

2.写出下面程序的运行结果。

{inta,b;

for(a=1,b=1;

=100;

{if(b>

=20)

if(b%3==1)b+=3;

b-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1