2006年4月全国计算机等级考试二级C语言笔试试卷及标准解析(2)

2019-02-16 17:28

void swap(char *x,char *y) {char t;

t=*x; *x=*y; *y=t; }

main()

{char *s1=\,*s2=\

swap(s1,s2);printf(\%s,%s\n\,s1,s2); }

程序执行后的输出结果是

A)123,abc B)abc,123 C)1bc,a23 D)321,cba (39)有以下程序 int fun(int n)

{if(n==1)return 1; else

return(n+fun(n-1)); }

main() {int x;

scanf(\%d\x=fun(x);printf(\%d\n\,x); }

执行程序时,给变量X输入10,程序的输出结果是 A)55 B)54 C)65 D)45 (40)有以下程序

int fun(int x[],int n) {static int sum=0,i;

for(i=0;i

main()

{int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0; s=fun(a,5)+fun(b,4);printf(\%d\n\,s); }

程序执行后的输出结果是

A)45 B)50 C)60 D)55 (41)有以下程序 main() {union

{char ch[2]; int d; }s;

s.d=0x4321;

printf(\%x,%x\n\,s.ch[0],s.ch[1]); }

在16位编译系统上,程序执行后的输出结果是

A)21,43 B)43,21 C)43,00 D)21,00 (42)有以下程序 main()

{char *p[]={\,\; int i,j;long num=0; for(i=0;i<2;i++) {j=0;

while(p[i][j]!=′\0′)

{if((p[i][j]-′0′)%2)num=10*num+p[i][j]-′0′; j+=2; } }

printf(\%d\n\; }

程序执行后的输出结果是

A)35 B)37 C)39 D)3975

(43)执行以下程序后,test.txt文件的内容是(若文件能正常打开) #include main()

{FILE *fp;

char *s1=\,*s2=\; if((fp=fopen(\

{printf(\open test.txt file\n\;exit(1);}

fwrite(s1,7,1,fp); /*把从地址s1开始的7个字符写到fp所指文件中*/ fseek(fp,0L,SEEK_SET); /*文件位置指针移到文件开头*/ fwrite(s2,5,1,fp); fclose(fp); }

A)Basican B)BasicFortran C)Basic D)FortranBasic (44)以下叙述中错误的是

A)C语言源程序经编译后生成后缀为.obj的目标程序

B)C程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中 D)C语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令 (45)以下叙述中错误的是

A)算法正确的程序最终一定会结束 B)算法正确的程序可以有零个输出 C)算法正确的程序可以有零个输入

D)算法正确的程序对于相同的输入一定有相同的结果 (46)以下叙述中错误的是

A)C程序必须由一个或一个以上的函数组成 B)函数调用可以作为一个独立的语句存在 C)若函数有返回值,必须通过return语句返回 D)函数形参的值也可以传回给对应的实参

(47)设有以下定义和语句

char str[20]=\,*p; p=str;

则以下叙述中正确的是 A)*p与str[0]的值相等 B)str与p的类型完全相同

C)str数组长度和p所指向的字符串长度相等

D)数组str中存放的内容和指针变量p中存放的内容相同 (48)以下叙述中错误的是

A)C程序中的#include和#define行均不是C语句 B)除逗号运算符外,赋值运算符的优先级最低 C)C程序中,j++;是赋值语句

D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算 (49)以下叙述中正确的是

A)预处理命令行必须位于C源程序的起始位置 B)在C语言中,预处理命令行都以\开头

C)每个C程序必须在开头包含预处理命令行:#include D)C语言的预处理不能实现宏定义和条件编译的功能 (50)以下叙述中错误的是

A)可以通过typedef增加新的类型

B)可以用typedef将已存在的类型用一个新的名字来代表 C)用typedef定义新的类型名后,原有类型名仍有效

D)用typedef可以为各种类型起别名,但不能为变量起别名

二、填空题(每空2分,共40分)

请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上,答在试卷上不得分。 (1)对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为【1】。 (2)在面向对象方法中,【2】描述的是具有相似属性与操作的一组对象。 (3)在关系模型中,把数据看成是二维表,每一个二维表称为一个【3】。

(4)程序测试分为静态分析和动态测试。其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 (5)数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为【5】。

(6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句【6】。

(7)以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。 main()

{float a,b,c;

scanf(\%f%f%f\,&a,&b,&c);

if(【7】)printf(\\n\;/*a、b、c能构成三角形*/ else printf(\\n\;/*a、b、c不能构成三角形*/ }

(8)以下程序的输出结果是【8】 。 main()

{int a[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0; for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1]; printf(\%d\n\,s); }

(9)当运行以下程序时,输入abcd,程序的输出结果是:【9】。 insert(char str[]) {int i; i=strlen(str); while(i>0)

{str[2*i]=str[i];str[2*i-1]=′*′;i--;} printf(\%s\n\; }

main()

{char str[40];

scanf(\%s\,str);insert(str); }

(10)下面程序的运行结果是:【10】。 fun(int t[],int n) {int i,m;

if(n==1)return t[0]; else

if(n>=2){m=fun(t,n-1); return m; } }

main()

{int a[]={11,4,6,3,8,2,3,5,9,2}; printf(\%d\n\,fun(a,10)); }

(11)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下: #include #include \ main()

{fun();printf(\\n\;} myfun.c文件如下: void fun()

{char s[80],c; int n=0;

while((c=getchar())!=′\n′) s[n++]=c; n--;

while(n>=0) printf(\%c\,s[n--]); }

当编译连接通过后,运行程序T18时,输入Thank!则输出结果是:【11】。

(12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首 地址,例如:str所指字符串为:Hello!,c中的字符为e,则函数返回字符串:ello!的首

地址。若str所指字符串为空串或不包含c中的字符,则函数返回NULL。请填空。 char *fun(char *str,char c) { int n=0; char *p=str; if(p!=NULL)

while(p[n]!=c&&p[n]!=′\0′)n++; if(p[n]==′\0′) return NULL; return(【12】); }

(13)以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的 所有整数,请填空。 main()

(int i,j;

for(i=0;【13】;i++) {j=i*10+6;

if(【14】)continue; printf(\%d\,j); } }

(14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1, 否则返回0。请填空 int isprime(int a) {int i;

for(i=2;i<=a/2;i++) if(a%i==0)【15】; 【16】; }

(15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形 字符阵列图形。例如,输入整数5时(注意:n不得大于10),程序运行结果如下: A B C D E F G H I J K L M N O

请填空完成该程序。 main()

{int i,j,n; char ch=′A′; scanf(\%d\,&n); if(n<11)

{for(i=1;i<=n;i++) {for(j=1; j<=n-i+1;j++) {printf(\%2c\,ch); 【17】; }

【18】;


2006年4月全国计算机等级考试二级C语言笔试试卷及标准解析(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《雪地里的小画家》第一课时教学设计之四

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: