2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)_第1页
2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)_第2页
2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)_第3页
2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)_第4页
2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

2.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

3.C语言中char类型数据占字节数为()。

A.3B.4C.1D.2

4.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

5.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3

6.在一个C语言源文件中定义的全局变量,其作用域为()。

A.由具体定义位置和extern说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

7.有以下定义:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能输出字母M的语句是()。

A.printf(“%c\n”,class[2].name[0]);

B.printf(“%c\n”,class[3].name[0]);

C.printf(“%c\n”,class[3].name[1]);

D.printf(“%c\n”,class[2].name[1]);

8.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9

9.以下不能输出字符A的语句是(注:字符A的ASCII值为65,字符a的ASCII值为97)()。

A.printf(“%c\n”,‘a’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

10.

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

intf1(intx,inty){returnx>y?x:y;}

intf2(intx,inty){returnx>y?y:x;}

main()

{inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,B),f1(c,D));

f=f1(f2(a,B),f2(c,D));

g=a+b+C+d-e-f;

phntf("%d,%d,%d\n",e,f,g);

}

A.4,3,7B.3,4,7C.5,2,7D.2,5,7

12.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内

B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C.在循环体内使用break语句和continue语句的作用相同

D.break语句只能用于switch语句体中

13.若已定义inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

14.下列条件语句中,功能与其他语句不同的是()。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

15.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是()。

A.main(){…x=fun(2,10);…}floatfun(inta,intB){…}

B.floatfun(inta,intB){…}main(){…x=fun(i,j);…}

C.floatfun(int,int);main(){…x=fun(2,10);…}floatfun(inta,intB){…}

D.main()…{floatfun(inti,intj);…x=fun(i,j);…}floatfun(inta,intB){…}

16.广义表(a,b,c,d)的表头是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

17.以下哪种操作最适合先进行排序处理()

A.找最大、最小值B.计算算术平均值C.找中间值D.找出现次数最多的值

18.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12

19.

20.下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

二、2.填空题(20题)21.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

for(i=0;i<20;i++)

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

22.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。

23.以下程序运行后的输出结果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}

24.数据结构分为逻辑结构与()。

25.若有定义doublea[5];,则a数组元素下标的上限为______。

26.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

27.若给fun函数的形参s传送字符串:"abc-6354abc",则函数的返回值是()。(字符串中包括空格)

longfun(charS[])

{longn;intsign;

for(;isspace(*s)||islower(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*S-'0');

returnsign*n;

}

28.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

29.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

30.函数pi的功能是根据以下近似公式求π值:

请在下面的函数中填空,完成求π的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0;

longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*s));

}

31.【】是指一个数据对象中的各个数据元素之间存在的联系。

32.下列程序输出的结果是______。

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

33.以下程序调用随机函数得到N个20以内的整数放在s数组中。函数fun的功能是找出s数组中的最大数(不止一个)所在下标传回主函数进行输出,并把最大值作为函数值返回,请填空。

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

for(i=0;i<k;i++)printf("%4d",d[i]);

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

for(i=0;i<N;i++)

if(w[i]>w[m])【】;

v=w[m];

for(i=0,j=0;i<N;i++)

if(w[i]==v)【】;

*k=【】;

return【】;

}

34.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。

main()

{

intfindbig(int,int,int);

int(*f)(),x,yz,z,big;

f=【】;

scanf("%d%d%d",&X,&y,&z);

big=(*f)(x,y,z);

printf("big=%d\n",big);

}

35.在宏定义#defineP13.14159中,用宏名PI代替一个______。

36.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

37.下面程序的功能是调用sub函数计算数组a中字符串的长度,请填空。

sub(chars[])

{intn;

for(n=0;【】n++);

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

38.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

39.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

printf("%s\n",str1);

}

40.以下程序运行后的输出结果是______。

voidfun(intx,inty)

{

x=x+y;y=x-y;x=x-y;

printf("%d,%d,",x,y);

}

main()

{

intx=2,y=3;

fun(x,y);

printf("%d,%d\n",x,y);

}

三、1.选择题(20题)41.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A.选择B.连接C.投影D.并

42.若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()

A.i=*p;B.*p=*&jC.i=&jD.i=**p;

43.若程序执行时的输入数据是“2473”,则下述程序的输出结果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=;'\n'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2),}}}

A.668977B.668966C.6677877D.6688766

44.有以下程序:fun(ihta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序运行后的输出结果是()。

A.3B.6C.8D.12

45.若有说明chars1[30]="abc",s2[]="defghi";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefghi

B.s1的内容更新为defghi\0

C.s1的内容更新为defghiabc\0

D.s1的内容更新为abcdefghi\0

46.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

47.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}该程序的输出结果是______。

A.2B.4C.6D.8

48.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

49.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

50.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

51.一个C程序可以包含任意多个不同名的函数,但有且仅有一个______。

A.过程B.函数C.主函数D.子程序

52.在下述程序中,判断i>j共执行的次数是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

53.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_______。

A.p+1B.a+1C.a++D.++p

54.若有定义和语句()chars[10];s="abcd";printf("%s\n",s);则结果是(以下μ代表空格)

A.输出abcdB.输出aC.abcdμμμμμD.编译不通过

55.假定int类型变量占用两个字节,若有定义:intx[10]{0,2,4};,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

56.设有以下定义和语句:charstr[20]="Program",*P;p=str;则以下叙述中正确的是()。

A.*p与str[0]中的值相等

B.str与p的类型完全相同

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

D.数组str中存放的内容和指针变量p中存放的内容相同

57.有以下程序:#include<stdio.h>voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其输出结果是()。

A.5353B.5335C.3535D.3553

58.以下叙述中正确的是

A.预处理命令行必须位于源文件的开头脑

B.在源文件的一行上可以多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

59.下列程序的输出结果是______。#include<string.h>main(){char*str1="abcde",*str2="abcd";strl++;str2++;printf("%d\n",strcmp(str1,str2));}

A.正数B.负数C.零D.不确定的值

60.下面程序的输出结果是()main(){charx=040;print{("%d\n",x=x<<1);}

A.100B.160C.120D.64

四、选择题(20题)61.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if(a<b)

if(c==d)y=0;

Elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

62.以下叙述中错误的是()。

A.C语言的可执行程序是由一系列机器指令构成的

B.用C语言编写的源程序不能直接在计算机上运行

C.通过编译得到的二进制目标程序需要连接才可以运行

D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

63.若调用fputc函数输出字符成功,则其返回值是()。

A.EOFB.1C.0D.输出的字符

64.有三个关系R,S和T如下:

其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并

65.在一个C源程序文件中所定义的全局变量,其作用域为()。

A.由具体定义位置和extem说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

66.以下语句中存在语法错误的是()。

67.下面叙述中错误的是()。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debu9

D.软件测试应严格执行测试计划,排除测试的随意性

68.下列叙述中正确的是()。

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

69.设有以下函数:

voidfun(intn,char}s){……}

则下面对函数指针的定义和赋值均正确的是()。

A.void(*pf)(int,char);pf=&fun;

B.void+pf();pf=fun;

C.void*pf();*pf=fun;

D.void(*pf)(int,char*);pf=fun;

70.有以下程序:

#include<stdioh>

voidmain()

{

charc1,c2,c3,c4,c5,c6;

c5=getchar();c6=getchar();

scanf("%c%c%c%c",&c1,&c2,&c3,&c4);

putchar(c1);putchar(c2);

printf("%c%c\n",c5,c6);

}

程序运行后,若从键盘输入(从第1列开始),则输出结果是()。

123<回车>

45678<回车>

A.3B.1C.3D.3456

122345

71.交换两个变量的值,不允许用临时变量,应该使用下列()位运算符。A.A.&B.^C.||D.~

72.在c语言中,变量的隐含存储类别是()。

A.autoB.staticC.externD.无存储类别

73.某系统总体结构图如下图所示:

该系统总体结构图的深度是()。

A.7B.6C.3D.2

74.

75.有以下程序:

程序运行后的输出结果是()。

A.OB.2C.3D.5

76.设有条件表达式:(EXP)?i++;j--,则以下表达式中(EXP)完全等价的是()。

A.(EXP==0)B.(EXP!=0)C.(EXP==1)D.(EXP!=1)

77.有以下程序:

#include<stdi0.h>

main()

{inta=1,b=2;

for(;a<8;a++){b+=a;a+=2;)

printf("%d,%d\n",a,b);

}

程序运行后的输出结果是()。

A.9,18

B.8,11

C.7,11

D.10,14

78.(24)对建立良好的程序设计风格,下面描述正确的是()

A.程序应简单、清晰、可读性好

B.符号名的命名要符合语法

C.充分考虑程序的执行效率

D.程序的注释可有可无

79.已知字符'A'的ASCⅡ代码值是65,字符变量c1的直是'A',c2的值是'D'。执行语句printf("%d,%d",c1,c2-2);后,输出结果是()。

A.A.A,BB.A,68C.65,66D.65,68

80.设x为int型变量,则执行以下语句后,x的值为()。x=10;x=x-=x-x;

A.10B.20C.40D.30

五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:依次取出字符串中所有的字母字符,形成新的字符串,并取代原字符串。例如,若输入的字符串是:“ab232bd34bkw”,则输出结果是:“abbdbkw”。请修改程序中的错误,使它能得到正确结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:

六、程序设计题(1题)82.使用VC++2010打开考生文件夹下prog1中的解决方案。此解决方案的项目中包含一个源程序文件prog1.c。在此程序中,请编写一个函数fun(),该函数的功能是将大于整数m且紧靠m的k个素数存入所指的数组中。例如,若输入17、5,则应输出19、23、29、31、37。注意:部分源程序在文件prog1.c中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:

参考答案

1.B

2.C解析:C语言提供了许多输入函数,其中有:getchar(输入字符)、scanf(格式输入)和gets\u3000(输入字符串)等。题目要求输入的是字符串,所以可以排除getchar,而且要求输入的字符串中包含空格,而scanf函数默认将输入的空格字符作为分割符,所以空格不会被输入,故可排除scanf。getc的作用是从文件中输入一个字符,故也不可取。gets函数可以输入一整行作为一个字符串,其中也包括空格字符,故应该选择C。

3.CChar类型数据占1个字节。

4.D解析:C语言中有基本的算术运算符(+、-、*、/)还包括自增自减运算符(++、-),在C语言解析表达式时,它总是进行贪婪咀嚼,这佯,该表达式就被解析为i+++++i,显然该表达式不合C语言语法。

5.D

6.A全局变量的作用域是从声明处到文件的结束。故本题答案为A选项。

7.AC语言规定数组的下标从0开始,结构体数组class初始化了前4个元素。第3个元素的name=“Marry”,则class[2].name[0]=‘M’。故本题答案为A选项。

8.C函数fun(intx,inty)的功能是返回x+Y的值。在主函数中,变量a,b,c的初始值分别为1,2,3。因此逗号表达式“a++,b++,a+b”的值等于5,表达式c++的值为3,调用于函数的表达式为“fun(5,3);”,其返回值等于8。

9.BB选项输出的格式为%d,即整型格式,所以输出字符‘A’的ASCII值65,而不是字母A。因为大写字母比其对应的小写字母的ASCII值小32,所以A选项正确。字符‘A’的ASCII值是65,以%c格式输出可以输出字母A,所以C选项正确。因为字符‘A’的ASCII值比字符‘B’的小1,所以D选项正确。故本题答案为B选项。

10.C

11.A解析:根据函数intf1(intx,inty){returnx>y?x:y;}和int馒(intx,inty){retumx>y?y:x;}的定义可知,如果x>y成立,则函数n返回x的值,函数C返回y的值。所以n(a,B=4,n(c,d)=5,C(a,B=3,f2(c,d)=2,故e=f2(4,5)=4,f=n(3,2)=3,g=4+3+5+2-4-3=7。

12.A本题主要考查的知识点是:break和IContinue语句。break语句可以用于swhitCh或循环体内,作用是跳/出switCh或循环体。Continue语句只能用于循环体内,作用是结束当前循环,进入下次循环。故本题中只有选项A)是正确的。

13.D解析:通常,引用一个数组元素可以用下标法,如a[P-a]形式,或指针法,如*(&a[i])的形式。本题中a[9]=9,a[10]显然超出了数组范围,注意,数组的下标是从0开始的。

14.D解析:选项A、选项B和选项C都是在a的值为0的时候输出y,a不为0的时候输出x,而选项D是在a为0的时候输出x,a不为0的时候输出y。所以,4个选项中选项D符合题意。

15.A在调用函数时,应对其进行说明。A选项中,调用时没有对函数进行说明。B、C选项中,被调用函数在主调函数之前定义,不用说明。D选项中,在主函数中对被调用函数的返回值类型进行了说明。故本题答案为A选项。

16.A

17.C

18.A本题中第一次调用为fun(8,fun(5,6)),因为fun(5,6)返回值为5,所以第二次调用为fun(8,5)=6。所以选择A)。

19.B

20.A解析:顺序存储结构就是用一组地址连续的存储单元依次存储该线性表中的各个元素,链式存储结构中各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致,所以选项A是正确的。两者都可以存储线性的、有序的逻辑结构,所以选项B、C不正确。顺序结构使用的是连续物理空间,链式结构可以使用零散的物理空间存储,链式结构更灵活,不存在谁节约空间的说法,所以选项D不正确。

21.\0s*p++\\0\r\ns\r\n*p++解析:本题先通过for循环从键盘读入20个字符,然后赋值'\\0'作为字符串结束标志,再使指针p指向字符串的首地址,最后通过while循环对字符串进行扫描并输出。

22.对象对象解析:将属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。

23.45794579解析:本题考查的是条件判断语句。本题特别需要注意的是“;”的问题,不能把“t=a;a=c;c=t;”误认为是第一个if的语句,实际上,只有“t=a;”才是第一个if的语句。所以判断第一个if语句的表达式不成立后,执行的是“a=c;c=t;”,此时a=5,c=79。然后判断第二个if语句的条件表达式,表达式成立,执行后面的3条语句,让a、b、c分别为4、5和79。

24.存储结构存储结构解析:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,即数据的组织形式。它分为数据的逻辑结构和数据的存储结构。

25.44解析:一维数组元素的定义形式为:数组名[N],则该数组中元素的下限是0,上限是N-1。

26.(c=getchar())!='\n'(c=getchar())!='\\n'解析:分析题目可知,程序中运用函数c=getchar()从标准输入设备读取下一个字符,而且是一行的字符(即没有换行),所以条件为(c=getchar())!='\\n'。

27.-6354-6354解析:本题的考查点是函数的返回值。这个函数的目的是提取出由函数的形参传送来的字符串中的数字字符,并通过相应字符位置计算出它们数值形式的幂,最后返回字符串中的数字字符的数值形式,所以函数的返回值应当是“-6354”。

28.测试实例测试实例解析:进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。

29.概要概要

30.(double)1/(i*i)或10/(i*i)(double)1/(i*i)或1,0/(i*i)解析:本题考查数据类型的转换。由题意s=1+1/(2*2)/1/(3*3)+…+1/(n*n),它的循环体为s=s+1/(i*i),由于s为double型数据,所以要将1/(i*i)的值转换为double类型。

31.数据结构数据结构

32.11解析:本题考查局部变量和全局变量的区别:局部变量是指作用域在函数级和块级的变量,全局变量是指作用域在程序级和文件级的变量。本程序首先定义了一个全局变量m=17,m=17的作用域在整个程序内。在fun函数内部定义了一个局部变量m=3,m=3的作用域仅在fun函数内部,通过fun函数返回两个形参的积再减m。在主函数中,输出fun(a,b)/m=(5*7-3)/17=1。

33.sd&km=id[j++]=ijv

34.findbigfindbig解析:本题首先定义了一个指向函数的指针变量f,如果希望让它指向某个函数,只需把函数名赋给该指针变量即可。所以本题的空白处应该填入函数名findbig。

35.本题考查字符替换格式:#define标识符字符串。

36.操作系统或OS操作系统或OS解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务。位于用户和操作系统之间。

37.s[n]!='\0';或s[n];nk=sub(a);s[n]!='\\0';或s[n];\r\nn\r\nk=sub(a);解析:函数sub()通过for循环计算字符串的长度,当字符串没有结束时循环,因此判断循环与否的条件是看字符串是否结束。故第1空应该填写s[n];或其他等价表达式。循环结束返回字符串长度值,循环变量n中累计了循环的次数即字符串的长度,故第2空应该填n。主函数中的空白处应该是一条调用函数sub()的语句,将字符串的首地址作为实参传递给形参,并将返回值赋值给变量k。故第3空应该填k=sub(a);。

38.88解析:fabs函数功能是求x的绝对值,计算结果为double型。pow功能是计算x的y次方的值,计算结果同样为double型。所以本题表达式相当于2.0的3.0次方,结果为8.000000。

39.*t++*t++解析:要使sstrcpy函数实现字符串复制,必须将t字符串中的每个字符逐个复制到s字符串中,可以使用*s=*t;s++;t++,也可以写成*s++=*t++,因此空格处填*t++。

40.32233,2,2,3解析:主函数中首先定义了整型变量x和y,并分别给它们赋初值为2和3,接着调用fun()函数,fun()函数把实参x和y的值传给形式参数x和y,实参和形参不再有联系.在fun()函数中通过运算使x和y的值交换过来,所以fun()函数中的输出结果是“3,2”。fun()函数调用返回输出x和y依旧是原来的x和y,为“2,3”原因是变量作为形参传值的,对形参的修改并不影响对应的实参。所以最后输出为3,2,2,3。

41.B解析:本题主要考查关系模型中几种运算的特征。经过选择或投影运算得到的新关系的属性个数最多不会超过原关系中的属性个数。经过连接运算得到的新关系最多不少于原关系中属性的个数。故选项B正确。

42.B

43.A解析:本题主要考查switch语句的使用方法。switch语句的执行过程为:进入switch结构后,对条件表达式进行运算,然后从上至下去找与条件表达式值相匹配的case,以此作为入口,执行switch结构中后面的各语句,直到遇到break语句,则跳出switch语句,如果各case都不匹配时,则执行default后面的语句。

44.D解析:主函数中首先定义了4个整型变量x、y、z和r,并分别给x、y、z赋初值为3、8、6,接着调用一个fun()函数,并将返回值赋给变量r。其中将fun(x,y)函数的返回值和2*z作为fun()函数的两个参数。在内层fun(x,y)函数中,将x的值和y的值传给形参a和b,此时a和b的值分别为3和8,执行if浯句,由于if后面判断条件表达式a>b为假,所以执行else后面的语句,返回值为8。此时,外层fun(x,y)函数两个参数为8和2*z=12,所以r的赋值语句相当于r=fun(8,12),同上分析可知tim(8,12)返回值为12,因此最后r的值为12。

45.D解析:strcat(s1,s2)是把s2字符串连接到s1字符串的末尾,要保证s1能容纳下连接后的字符串。

46.D解析:C语言在函数中说明的变量为局部变量,只在函数内起作用但不会影响到其他函数。所以在不同的函数中使用相同的函数名不代表是同一函数,A)项正确。在函数定义时声明的参数只在函数内部起作用,是函数的局部变量,B)正确。在一个函数中定义的变量是这个函数的局部变量,所以只在这个函数内起作用,C)正确。复合语句中定义的变量其作用域是这个复合语句,不会扩大到整个函数,所以D)项错误。注意:函数的书写风格。

47.B解析:函数fib内部有两个递归调用,当n=3时,fib(n-1)返回2,fib(n-2)也返回2,所以fib(n-1)+fib(n-2)的值为4。

48.DD。【解析】本题主要考查对排序算法的理解。冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。第一趟冒泡排序使最大的关键字元素放到最后。以此类推,进行第2~n次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,则需要比较n(D-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,当初始记录序列按关键字有序或基本有序时,快速排序退化为冒泡排序,最坏情况下比较次数为n(n-1)/2。

49.D解析:因为x的值为大于1的奇数,所以x除以2的余数等于1。所以选项D)等于关系表达式的结果为假,即等于0。

50.C解析:带参数宏的格式为:#define标识符(形参表)形参表达式。其功能是:在预处理程序中将程序中出现的所有带实参的宏名,展开成由实参组成的表达式。

51.C解析:主函数main在C语言程序中有且只能有一个,它是程序执行的入口。

52.D

53.C解析:数组名是指针常量,是个固定的指针,不能对数组名赋予一个新的地址值,也不能使这个指针常驻量“移动”,指向数组的其他元素。

54.D

55.D解析:当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x[10]不论是否为其元素初始化,它所分配的存储空间仍为2*10=20个字节。

56.A解析:语句p=str表示指针变量p指向str数组的首地址,即&str[0],所以*p与str[0]中的值相等,选项A)正确。

57.B解析:swap1函数传递的是变量的地址,可以实现两个数的交换;而swap2函数传递的是值,执行完swap2后,c0,c1的值互换了,但main函数中的b0和b1并未互换,即形参值的改变无法传给实参。

58.D解析:选项A)预处理命令行通常位于源文件的开头,但不是必须的;选项B)在源文件的一行上只能有一条预处理命令;选项C)宏名一般习惯用大写字母表示,以与变量名相区别,但不是必须的;选项D)宏替换不占用程序的运行时间,只占编译时间。

59.A解析:当两个字符串比较到第5个字符时,str1指向的字符是'e',str2指向的字符是'\\0',字符串比较函数strcmp的返回值是这两个字符ASCII码值的差(101),是正数。

60.D

61.Cif-else语句时if语句的嵌套,也就是if-else语句在if语句的条件下执行,所以两个条件相同的地方都是a<b.

62.Dc语言的可执行程序是由一系列机器指令组成的。用C语言编写的源程序必须经过编译生成二进制目标代码,再经过连接才能运行,并且可以脱离c语言集成开发环境。故答案为D)。

63.Dfputc函数的一般调用形式为fputc(ch,fp),其中ch是要输出的字符,它可以是一个字符常量,也可以是一个字符变量,fp是文件指针变量。函数的作用是将字符(ch的值)输出到fp所指向的文件中。

fputc函数也返回一个值,如果输出成功,则返回值就是输出的字符;如果输出失败,则返回一个EOF(-1)。因此,本题的正确答案选D。

64.D

65.A全局变量的作用域是从声明处到文件的结束。所以选择A)。

66.A数组定义后,不能对数组整体赋值,ss是二维数组,因为ss[1]是一维字符数组,即字符串,字符串赋值可以使用“strcpy(ss[1],"right”);”的形式,而选项A)中对二维数组中的第“l”维(相当于一个一维数组)赋值,是不可以的。选项B)和D)是在定义时对数组同时进行初始化,这是可以的。选项c)中,将字符串在内存中的首地址赋给指针数组的一个元素,这是可以的。故本题答案为A)。

67.A软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,因此选项A)错误。程序调试的基本步骤有:错误定位、修改设计和代码以排除错误、进行回归测试以防止引进新的错误。程序调试通常称为Debu9,即排错。软件测试的基本准则包括:所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、不可能实现穷举测试、妥善保存测试计划等文件。

68.C本题考查对面向对象的理解,面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

69.D函数的参数可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。函数名代表函数的人口地址,指向函数的指针应该定义为void(+pf)()。如果定义为void·pf(),则表示函数pf返回值为一个基类型为void的指针。因此D选项正确。

70.A严格按照格式进行输入和输出,当我们输入123时,题目会将1赋给c5,2赋给c6,3赋给c1,回车符赋给c2…….

71.B解析:按逻辑位运算的特定作用主要有3点:①用按位与运算将特定位清0或保留特定位:②用按位或运算将特定的位置设置为1;③用按位异或运算将某个变量的特定位翻转或交换两个变量的值。

72.A解析:auto变量:无static声明的局部变量。用auto作存储类别的声明时,可以不写auto,存储类别隐含确定为auto(自动存储类别),是动态存储方式。大多数变量是自动变量。用static声明的局部变量是静态局部变量。函数调用结束后静态局部变量占据的内存存储单元空间不释放,局部变量保留原值,下次调用时可以继续使用该值。用extern声明外部变量,外部变量即全局变量,可以用extern声明来改变全局变量的作用域,实际上,关键字'auto'可以省略,auto不写则隐含确定为'自动存储类别',属于动态存储方式。

73.C根据总体结构图可以看出该树的深度为3,比如:XY系统——功能2——功能2.1,就是最深的度数的一个表现。

</b.

74.A

75.B程序首先给字符数组8[]赋值为“012xy”,for循环语句的功能是遍历字符串,通过if条件语句对字符串中的小写字母计数,在符串中小写字母为j2个,即n=2。因此B选项正确。

76.B解析:条件表达式的形式为:“表达式1?表达式2:表达式3”。其含义为:当“表达式1”的值为非零时,求出“表达式2”的值,此时“表达式2”的值就是整个条件表达式的值;当“表达式1”的值为零时,求出“表达式3”的值,此时“表达式3”的值就是整个条件表达式的值。对于本题来说,当表达式EXP为非0值时条件成立,即执行语句i++;当EXP等于0时,执行语句j--;这等同于条件表达式“(EXP!=0)?i++:i++;”。

77.D\n第一次执行循环前,a=1,满足a<8,执行循环后,b=3,a=3。执行完a++操作后,a=4。由于a<8,执行第二次循环后,b=7,a=6,执行完a++操作后,a=7。由于a<8,执行第三次循环后,b=14,a=9,执行完a++操作后a=10。此时不满足a<8,跳出循环。

\n

78.A

79.C在C语言中,用整型格式输出字符时,输出的是其ASCII码值。

80.A执行x=x-=x-x语句可写成x=x-(x-x),可看出结果为10,故八选项正确。

81.82.1voidfun(intm,intk,intxx[])2{3inti,j,n;4for(i=m+1,n=0;n<k;i++)p*<>找大于m的素数,循环k次,即找出紧靠m的k个素数*/5{for(j=2;j<i;j++)p*#]断一<>个M否为素数,如果不是,跳出此循环,判断下一个数*/6if(i%j==0)break;7if(j>=i)/*如果是素数,存入数组XX中*/8xx[n++]=i;9}10}本题主要考查素数的判定方法。如果一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组XX中。当数组XX的素数个数为k个时,退出循环。</i;j++)p*#]断一<></k;i++)p*<></b)2022-2023年黑龙江省伊春市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:________班级:________姓名:________考号:________

一、单选题(20题)1.以下函数调用语句中含有实参个数为().func((exp1,exp2),(exp3,exp4,exp5));

A.1个B.2个C.4个D.5个

2.当用户要求输入的字符串中含有空格时,应使用的输入函数是()。

A.scanfB.getcharC.getsD.getc

3.C语言中char类型数据占字节数为()。

A.3B.4C.1D.2

4.设整型数i=5,则printf("%d",i+++++i);的输出为______。

A.10B.11C.12D.语法错误

5.程序运行后的输出结果是()。#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c(int*)malloc(sizeof(int));*a=1;*b=2;*c=3;a=b;printf(“%d,%d,%d\n”,*a,*b,*c);}A.1.1.3B.2.2.3C.1.2.3D.3.3.3

6.在一个C语言源文件中定义的全局变量,其作用域为()。

A.由具体定义位置和extern说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

7.有以下定义:structperson{charname[10];intage;};structpersonclass[10]={“Johu”,17,“Paul”,19,“Mary”,18,“Adam”,16,};能输出字母M的语句是()。

A.printf(“%c\n”,class[2].name[0]);

B.printf(“%c\n”,class[3].name[0]);

C.printf(“%c\n”,class[3].name[1]);

D.printf(“%c\n”,class[2].name[1]);

8.有下列程序:fun(intX,inty){return(x+y);)main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是()。A.6B.7C.8D.9

9.以下不能输出字符A的语句是(注:字符A的ASCII值为65,字符a的ASCII值为97)()。

A.printf(“%c\n”,‘a’-32);

B.printf(“%d\n”,‘A’);

C.printf(“%c\n”,65);

D.printf(“%c\n”,‘B’-1);

10.

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

intf1(intx,inty){returnx>y?x:y;}

intf2(intx,inty){returnx>y?y:x;}

main()

{inta=4,b=3,c=5,d=2,e,f,g;

e=f2(f1(a,B),f1(c,D));

f=f1(f2(a,B),f2(c,D));

g=a+b+C+d-e-f;

phntf("%d,%d,%d\n",e,f,g);

}

A.4,3,7B.3,4,7C.5,2,7D.2,5,7

12.以下叙述中正确的是()。A.A.break语句只能用在循环体内和switch’语句体内

B.continue语句的作用是:使程序的执行流程跳出包含它的所有循环

C.在循环体内使用break语句和continue语句的作用相同

D.break语句只能用于switch语句体中

13.若已定义inta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素不正确的引用是

A.a[p-A)B.*(&a[i])C.p[i]D.a[10]

14.下列条件语句中,功能与其他语句不同的是()。

A.if(a)printf("%d\n",x);elseprintf("%d\n",y);

B.if(a==O)printf("%d\n",y);elseprintf("%d\n",x);

C.if(a!=0)printf("%d\n",x);elseprintf("%d\n",y);

D.if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

15.若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,下列选项中错误的程序是()。

A.main(){…x=fun(2,10);…}floatfun(inta,intB){…}

B.floatfun(inta,intB){…}main(){…x=fun(i,j);…}

C.floatfun(int,int);main(){…x=fun(2,10);…}floatfun(inta,intB){…}

D.main()…{floatfun(inti,intj);…x=fun(i,j);…}floatfun(inta,intB){…}

16.广义表(a,b,c,d)的表头是()。

A.aB.(a)C.(b,c,d)D.((b,c,c))

17.以下哪种操作最适合先进行排序处理()

A.找最大、最小值B.计算算术平均值C.找中间值D.找出现次数最多的值

18.有以下程序:#includeintfun(intx,inty){if(x!=y)return(x+y)/2);elsereturn(x);}Main(){Inta=4,b=5,c=6;printf("%d\n",fun(2*a,fun(b,c));}A.6B.3C.8D.12

19.

20.下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C.顺序存储结构能存储有序表,链式存储结构不能存储有序表

D.链式存储结构比顺序存储结构节省存储空间

二、2.填空题(20题)21.下面的程序是将从终端读入的20个字符放入字符数组中,然后利用指针变量输出上述字符串,请填空。

#include<stdio.h>

main()

{inti;

chars[21],*p;

for(i=0;i<20;i++)

s[i]=getehar();

s[i]=【】;

p=【】;

while(*p)putchar(【】);

}

22.在面向对象的程序设计中,类描述的是具有相似性质的一组【】。

23.以下程序运行后的输出结果是()。main(){inta=3,b=4,c=5,t=79;if(b<a&&a<C)t=a;a=c;c=t;if(a<c&&b<C)t=b;b=a;a=t;printf("%d%d%d\n",a,b,C);}

24.数据结构分为逻辑结构与()。

25.若有定义doublea[5];,则a数组元素下标的上限为______。

26.下列程序的功能是对输入的一行字符中的数字字符的字面值累加,输出此累加和,请填空。

#include<stdio.h>

#include<ctype.h>

main()

{charc;

inta,s=0;

while(______)

if(isdigit(C))

{a=c-'0';s+=a;}

printf("s=%d",s);

}

27.若给fun函数的形参s传送字符串:"abc-6354abc",则函数的返回值是()。(字符串中包括空格)

longfun(charS[])

{longn;intsign;

for(;isspace(*s)||islower(*s);s++);

sign=(*s=='-')?-1:1;

if(*s=='+'||*s=='-')s++;

for(n=0;isdigit(*s);s++)

n=10*n+(*S-'0');

returnsign*n;

}

28.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和【】的设计来实现。

29.软件的【】设计又称为总体结构设计,其主要任务是建立软件系统的总体结构。

30.函数pi的功能是根据以下近似公式求π值:

请在下面的函数中填空,完成求π的功能。

#include<math.h>

doublepi(longn)

{doubles=0.0;

longi;

for(i=1;i<=n;i++)s=s+【】;

return(sqrt(6*s));

}

31.【】是指一个数据对象中的各个数据元素之间存在的联系。

32.下列程序输出的结果是______。

intm=17;

intfun(intx,inty)

{intm=3;

return(x*Y-m);

}

main()

{inta=5,b=7;

printf("%d\n",fun(a,B)/m);

}

33.以下程序调用随机函数得到N个20以内的整数放在s数组中。函数fun的功能是找出s数组中的最大数(不止一个)所在下标传回主函数进行输出,并把最大值作为函数值返回,请填空。

#defineN30

man()

{ints[N],d[N],i,k,m;

for(i=0,i<N;i++){s[i]=rand()%20;printf("%3d",s[i]);}

m=fun(【】);

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

printf(”Theindex;\n");

for(i=0;i<k;i++)printf("%4d",d[i]);

printf("\n\n");

}

fun(int*w,int*d,int*k)

{inti,j,m=0,v;

for(i=0;i<N;i++)

if(w[i]>w[m])【】;

v=w[m];

for(i=0,j=0;i<N;i++)

if(w[i]==v)【】;

*k=【】;

return【】;

}

34.设函数findbig已定义为求3个数中的最大值。以下程序将利用函数指针调用findbig函数。请填空。

main()

{

intfindbig(int,int,int);

int(*f)(),x,yz,z,big;

f=【】;

scanf("%d%d%d",&X,&y,&z);

big=(*f)(x,y,z);

printf("big=%d\n",big);

}

35.在宏定义#defineP13.14159中,用宏名PI代替一个______。

36.在计算机软件系统的体系结构中,数据库管理系统位于用户和【】之间。

37.下面程序的功能是调用sub函数计算数组a中字符串的长度,请填空。

sub(chars[])

{intn;

for(n=0;【】n++);

return【】;

}

main()

{char*a;intk;

gets(a);

【】

printf("%d",k);

38.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【】。

39.以下sstrcpy()函数实现字符串复制,即将t所指字符串复制到s所指内存空间中,形成一个新字符串s。请填空。

voidsstrcpy(char*s,char*t)

{while(*s++=【】);}

main()

{charstrl[100],str2[]="abcdefgh";

sstrcpy(str1,str2);

printf("%s\n",str1);

}

40.以下程序运行后的输出结果是______。

voidfun(intx,inty)

{

x=x+y;y=x-y;x=x-y;

printf("%d,%d,",x,y);

}

main()

{

intx=2,y=3;

fun(x,y);

printf("%d,%d\n",x,y);

}

三、1.选择题(20题)41.下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是

A.选择B.连接C.投影D.并

42.若有说明inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()

A.i=*p;B.*p=*&jC.i=&jD.i=**p;

43.若程序执行时的输入数据是“2473”,则下述程序的输出结果是#include<stdio.h>voidmain(){intcs;while((cs=getchar())!=;'\n'){switch(cs-'2'){case0case1:putchar(cs+4);case2:putchar(cs+4);break;case3:putchar(cs+3);default:putchar(cs+2),}}}

A.668977B.668966C.6677877D.6688766

44.有以下程序:fun(ihta,intb){if(a>b)return(a);elsereturn(b);}main(){intx=3,y=8,z=6,r;r=fun(fun(x,y),2*z);printf("%d\n",r);}程序运行后的输出结果是()。

A.3B.6C.8D.12

45.若有说明chars1[30]="abc",s2[]="defghi";,则在使用函数strcat(s1,s2)后,结果是()。

A.s1的内容更新为abcdefghi

B.s1的内容更新为defghi\0

C.s1的内容更新为defghiabc\0

D.s1的内容更新为abcdefghi\0

46.以下叙述中不正确的是

A.在不同的函数中可以使用相同的名字的变量

B.函数中的形式参数是局部变量

C.在一个函数内定义的变量只在本函数范围内有效

D.在一个函数内的复合语句中定义的变量在本函数范围内有效

47.有如下程序:longfib(intn){if(n>2)return(fib(n-1)+fib(n-2));elsereturn(2);}main(){printf("%ld\n",fib(3));}该程序的输出结果是______。

A.2B.4C.6D.8

48.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。

A.冒泡排序为n/2B.冒泡排序为nC.快速排序为nD.快速排序为n(n-1)/2

49.下列选项中,当x为大于1的奇数时,值为0的表达式是()。

A.x%2==1B.x/2C.x%2!=0D.x%2==0

50.#define能作简单的替代,用宏来替代计算多项式5*x*x+5*x+5的值的函数f,正确的宏定义语句为()。

A.#definef(x)5*x*x+5*x+5

B.#definef5*X*x+5*x+5

C.#definef(a)(5*a*a+5*a+5)

D.#define(5*x*x+5*x+5)f(x)

51.一个C程序可以包含任意多个不同名的函数,但有且仅有一个______。

A.过程B.函数C.主函数D.子程序

52.在下述程序中,判断i>j共执行的次数是()。main(){inti=0,j=10,k=2,s=0;for(;;){i+=k;if(i>j){printf("%d",s);break;}s+=i;}}

A.4B.7C.5D.6

53.若已定义:inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是_______。

A.p+1B.a+1C.a++D.++p

54.若有定义和语句()chars[10];s="abcd";printf("%s\n",s);则结果是(以下μ代表空格)

A.输出abcdB.输出aC.abcdμμμμμD.编译不通过

55.假定int类型变量占用两个字节,若有定义:intx[10]{0,2,4};,则数组x在内存中所占字节数是______。

A.3B.6C.10D.20

56.设有以下定义和语句:charstr[20]="Program",*P;p=str;则以下叙述中正确的是()。

A.*p与str[0]中的值相等

B.str与p的类型完全相同

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

D.数组str中存放的内容和指针变量p中存放的内容相同

57.有以下程序:#include<stdio.h>voidswap1(intc[]){intt;t=c[0];c[0]=c[1];c[1]=t;}voidswap2(intc0,intc1){intt;t=c0;c0=c1;c1=t;}main(){inta[2]={3,5},b[2]={3,5};swap1(a);swap2(b[0],b[1]);printf("%d%d%d%d\n",a[0],a[1],b[0],b[1]);}其输出结果是()。

A.5353B.5335C.3535D.3553

58.以下叙述中正确的是

A.预处理命令行必须位于源文件的开头脑

B.在源文件的一行上可以多条预处理命令

C.宏名必须用大写字母表示

D.宏替换不占用程序的运行时间

59.下列程序的输出结果是______。#include<string.h>main(){char*str1="abcde",*str2="abcd";strl++;str2++;printf("%d\n",strcmp(str1,str2));}

A.正数B.负数C.零D.不确定的值

60.下面程序的输出结果是()main(){charx=040;print{("%d\n",x=x<<1);}

A.100B.160C.120D.64

四、选择题(20题)61.设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句

if(a<b)

if(c==d)y=0;

Elsey=1;

该语句所表示的含义是()。

A.

B.

C.

D.

62.以下叙述中错误的是()。

A.C语言的可执行程序是由一系列机器指令构成的

B.用C语言编写的源程序不能直接在计算机上运行

C.通过编译得到的二进制目标程序需要连接才可以运行

D.在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe文件

63.若调用fputc函数输出字符成功,则其返回值是()。

A.EOFB.1C.0D.输出的字符

64.有三个关系R,S和T如下:

其中关系T由关系R和S通过某种操作得到,该操作为()。A.选择B.投影C.交D.并

65.在一个C源程序文件中所定义的全局变量,其作用域为()。

A.由具体定义位置和extem说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围

66.以下语句中存在语法错误的是()。

67.下面叙述中错误的是()。

A.软件测试的目的是发现错误并改正错误

B.对被调试的程序进行“错误定位”是程序调试的必要步骤

C.程序调试通常也称为Debu9

D.软件测试应严格执行测试计划,排除测试的随意性

68.下列叙述中正确的是()。

A.在面向对象的程序设计中,各个对象之间具有密切的关系

B.在面向对象的程序设计中,各个对象都是公用的

C.在面向对象的程序设中,各个对象之间相对独立,相互依赖性小

D.上述3种说法都不对

69.设有以下函数:

voidfun(intn,char}s){……}

则下面对函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论