版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2021年河南省濮阳市全国计算机等级考试C语言程序设计重点汇总测试卷(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.下列给字符数组初始化中,()是正确的。
A.chars2[3]="xyz";
B.chars1[]="abcd";
C.chars3[][3]={'a','x','y'};
D.chars4[2][3]={"xyz","mnp"};
2.以下不完整的程序拟实现调用getmax函数,找出4个变量中最大的一个:#include<stdio.h>intgetmax(intx,inty){returnx>yx:y;}voidmain(){inta,b,c,d,mx;scanf(“%d%d%d%d”,&a,&b,&c,&d);printf(“max=%d\n”,________);}以下选项若填入下划线处,不能实现上述功能的是()。
A.getmax(getmax(getmax(a,b),c),d)
B.getmax(getmax(a,b),getmax(c,d))
C.getmax(a,getmax(b,getmax(c,d)))
D.mx=(getmax(a,b),getmax(c,d))
3.以下选项中,合法的一组C语言数值常量是()。
A.12.0Xa234.5e0
B.028.5e-3-0xf
C..1774e1.50abc
D.0x8A10,0003.e5
4.能在O(1)时间内访问线性表的第i个元素的结构是()
A.顺序表B.单链表C.单向循环链表D.双向链表
5.有以下程序:intf(intn){if(n==1)return1;elsereturnf(n-1)+1;}main(){inti,j=0;for(i=i;i<3;i++)j+=f(i);printf("%d\n",j);}程序运行后的输出结果是()。
A.4B.3C.2D.1
6.有以下定义: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]);
7.有如下程序:
longfib(intn)
{if(n>2)return(fib(n-1)+fib(n-2));
elsereturn(2);
}
main()
{printf("%d\n",fib(3));}
该程序的输出结果是A.A.2B.4C.6D.8
8.设有宏定义:#defineIsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV(m,5)&&IsDIV(m,7)为真时所要表达的是A.判断m是否能被5或者7整除
B.判断m是否能被5和7整除
C.判断m被5或者7整除是否余1
D.判断m被5和7整除是否都余1
9.有以下程序:#include<stdi0.h>#include<string.h>structA{inta;charb[10];doubleC;);voidf(structAt);main(){structAa={"1001,"ZhangDa",l098,0};f(a);printf("%d,%S,%6.1f\n",a.a,a.b,a.c);}voidf(structAt){t.a=1002;strcpy(t.b,"ChangRon9");t.c=1202.0;}程序运行后的输出结果是()。A.1001,ZhangDa,1098.0
B.1002,ChangRong,1202.0
C.1001,ChangRong,1098.0
D.1002,ZhangDa,1202.0
10.定义int*swap()指的是______。
A.一个返回整型值的函数swap()
B.一个返回指向整型值指针的函数swap()
C.一个指向函数swap()的指针,函数返回一个整型值
D.以上说法均错
11.已有定义int(*q)(),指针q可以()。
A.指向函数的入口地址B.代表函数的返回值C.表示函数的类型D.表示函数返回值的类型
12.有以下程序:#include<stdio.h>main(){intk=5;while(--k)printf(“%d”,k-=3);printf(“\n”);}程序运行后的输出结果是()。
A.1B.2C.4D.死循环
13.
A.A.2A3N4E5OB.1H213U4EC.1A2N3U4OD.1A2N3E4O
14.下列关于return语句的叙述中正确的是()。
A.—个自定义函数中必须有一条return语句
B.—个自定义函数中可以根据不同情况设置多条return语句
C.定义成void类型的函数中可以有带返回值的return语句
D.没有return语句的自定义函数在执行结束时不能返回到调用处
15.用单链表方式存储的线性表,存储每个结点需要两个域,一个数据域,另一个是()。
A.当前结点的所在地址B.后继结点的所在地址C.空指针域D.空闲域
16.若f(n)=3n2+2n+1,则f(n)=()。
A.O(n2)B.O(n)C.O(2n)D.O(3n2)
17.设有定义:intn=0,*p=&n,**q=&p;则下列选项中正确的赋值语句是()。
A.p=1;B.*q=2;C.q=p;D.*p=5;
18.C语言的基本单位是()。
A.函数B.过程C.子程序D.子函数
19.
20.
二、2.填空题(20题)21.执行下面程序段时输出suet,请填空。
main()
{staticchara[]="student";
char*p;
for(p=a;p<【】;p+=2)
putchar(*p);
}
22.排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、______和选择排序。
23.以下程序输出的最后一个值是【】。
intff(intn)
{staticintf=1;
f=f*n;
returnf;
}
main()
{inti;
for(i=1;i<5;i++)printf("%d\n",ff(i));}
24.在关系数据库中,将数据表示成二维表,每一个二维表称为______。
25.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
26.下列程序的运行结果是______。
main()
{inti,a[10];
a[0]=a[1]=1;
for(i=2;i<5;i++)
a[i]=a[i-2]+a[i-1];
for(i=0;i<5;i++)
{if(i%2==0)printf("\n");
printf("%d",a[i]);
}
}
27.在运算过程中,能够使空表与非空表的运算统一的结构是【】。
28.有以下语句段
intn1=10,n2=20;
printf("【】",n1,n2);
要求按以下格式输出n1和n2的值,每个输出行从第一列开始,请填空。
n1=10
n2=20
29.表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
30.以下函数用来在w数组中插入x,w数组中的数已按由小到大的顺序存放,n为数组中存放的数的个数。插入后数组中的个数仍然有序。请填空,使之完整。
voidfun(char*w,charx,int*n)
{inti,p;
p=0;
w[*n]=x;
whiel(x>w[p])【】;
for(i=*n;i>p;i--)w[i]=【】;
w[p]=x;
++*n;
}
31.下面程序的功能是:计算1~10之间的奇数之和与偶数之和,请填空。
#include<stdio.h>
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<=10;i+=2)
{a+=i;
【】;
c+=b;}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);}
32.若定义#definePI3.14159,则执行完下列程序后输出结果是______。
#definePI3.14159;printf("PI=%f",PI);
33.下面程序把从终端读入的10个整数以二进制方式写入一个名为bi.dat的新文件中。
#include<stdio.h>
FILE*fp;
main()
{inti,j;
if(fp=fopen(【】)==NULL)exit(0);
for(i=0;i<10;i++)
{scanf("%d",&j);
fwrite(&j,sizeof(int),1,【】;
}
fclose(fp);
}
34.以下程序的输出结果是【】。
#include<stdio.h>
voidswap(int*a,int*b)
{int*t;
t=a;a=b;b=t;
}
main()
{inti=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d%d\n",*p,*q);
}
35.语句:x++;++x;x=1+x;执行后都使变量x中的值增1,请写出一条同一功能的赋值语句______。
36.关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、______和自定义完整性。
37.以下程序的输出结果是【】。
main()
{char*p=“abodefgh”,*r;
long*q;
q=(long*)p;
q++;
r=(char*)q;
printf(“%s\n”,r);
}
38.以下程序运行后的输出结果是______。
#include<string.h>
main()
{charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");
}
39.以下程序的输出结果是【】。
main()
{inty=9;
for(;y>0;y--)
if(y%3==0)
{printf("%d",--y);continue;}}
40.面向对象的模型中,最基本概念是对象和【】。
三、1.选择题(20题)41.设有程序段:intk=12:while(k=1)k=k-1:则下列描述中正确的是()。
A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次
42.设有如下函数定义,则输出结果为_______。char*fun(char*str){char*p=str;while(*p){if(*p>'d')continue;p++;}returnp;}main(){printf("%s\n",fun("welcome!"));}
A.welcomeB.come!C.wD.程序进入死循环
43.若i、j已定义为int型,则以下程序段中内循环的总的执行次数是()for(i=5;i>0;i--)for(j=0;j<4;j++){…}
A.20B.24C.25D.30
44.设有如下的函数funct(x)floatx;{x*=x;printf("\n%d",x);return(x);}则函数的类型()
A.与参数x的类型相同B.voidC.intD.无法确定
45.若有如下语句:intx=3;do{printf("%d\n",x-=2);}wbile(!(--x));则上面程序段()。
A.输出的是1B.输出的是1和-2C.输出的是3和0D.是死循环
46.下列表达式中,可以正确表示的关系是()。
A.(x>=1)10(x<=0)B.x>1‖x=0C.x>=1ORx<=0D.X>=1&&x<=0
47.请选出可用作C语言用户标识符的是
A.void,define,WORD
B.a3_b3,_123,IF
C.FOR,--abc,Case
D.2a,Do,Sizeof
48.有以下程序main(){inti=0,s=0;do{if(i%2){i++;continue;}i++;s+=i;while(i<7);printf("%d\n",s);}执行后输出的结果是
A.16B.12C.28D.21
49.在软件测试设计中,软件测试的主要目的是()
A.实验性运行软件B.证明软件正确C.找出软件中全部错误D.发现软件错误而执行程序
50.有以下程序#include<stringh>main(intargc,char*argv[]){inti,len=0;fot(i=1;i<argc;i+=2)len+=strlen(argv[i]);printf("%d\n",len);}经编译连接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行exabcdefgh3k44执行后输出结果是
A.14B.12C.8D.6
51.对于下面的程序#include<stdio.h>#include<string.h>char*scmp(char*s1,char*s2){if(strcmp(s1,s2)<0)return(s1);elsereturn(s2);}main(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);strcpy(string,scmp(str[0],str[1]));strcpy(string,scmp(string,str[2]));printf("%s\n",string);}若运行时依次输入abcd、abba和abc三个字符串,则输出结果为______。
A.abcdB.abbaC.abcD.abca
52.在以下一组运算中,优先级最高的运符算是()
A.<=B.=C.%D.&&
53.有以下程序
#include<stdio.h>
voidfun(char*t,char*s)
{while(*t!=0)t++;
while((*t++=*s++)!=0);
}
main()
{charss[10]="acc",aa[10]="bbxxyy";
fun(ss,aa);printf("%s,%s\n",ss,aa);
}
程序的运行结果是
A.accxyy,bbxxyy
B.acc,bbxxyy
C.accxxyy,bbxxyy
D.accbbxxyy,bbxxyy
54.以下说法正确的是()。
A.宏定义是C语句,要在行末加分号
B.可以使用#undefine提前结束宏名的使用
C.在进行宏定义时,宏定义不能嵌套
D.双引号中出现的宏名也要进行替换
55.下列程序的输出结果是#include"stdio.h”"main(){inti,a=0,b=0;for(i=1;i<10;i++){if(i%2==0){a++;continue;}b++;}printf("a=%d,b=%d",a,b);}
A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=5
56.数据的完整性是指数据的正确性、有效性和______。
A.可维护性B.独立性C.安全性D.相容性
57.若有如下程序:main(){intx=3,y=4,z;z=(x+(y-=X*X));printf("%d,%d\n",y,z);}则程序执行后的输出结果是()。
A.-4,2B.-5,-2C.-5,-1D.4,-2
58.下列叙述中正确的是()。
A.数据库系统是一个独立的系统,不需要操作系统的支持
B.数据库技术的根本目标是要解决数据的共享问题
C.数据库管理系统就是数据库系统
D.以上3种说法都不对
59.具有3个结点的二叉树有
A.2种形态B.4种形态C.7种形态D.5种形态
60.以下程序的输出结果是______。main(){inti,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}
A.20B.21C.22D.23
四、选择题(20题)61.有以下程序:
A.xyyxB.yyyyC.yyxxD.yxyx
62.
有以下程序:
#include<stdio.h>
main
{intx=4,y;
do
{y=x;
if(!y)printf("x");
else
printf("y"):
x--;
}while(x);
}
程序的输出结果是()。
A.xyyxB.yyyyC.yyxxD.yxyx
63.
64.有以下程序:
intfun()
{staticints=0;
s+=1;
returns;
}
main(intargc,char*argv[])
{intn,i=0;
while(argv[1][i]!=’\0’)
{n=fun();i++;}
printf("%d\n",n*argc);
}
假设程序经编译、链接后生成可执行文件exam.exe,若键入以下命令:exam123<回车>,则运行结果为()。
A.6B.8C.3D.4
65.
66.有以下程序
main()
{inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",(++p)[i]);
}
程序运行后的输出结果是()。
A.012B.135C.234D.345
67.有如下程序段
structabc
{inta,b,c,s;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
程序运行后输出的结果是
A.5B.6
C.7D.8
68.有以下程序:
程序运行后的输出结果是()。
69.若有定义语句:intX=10;,则表达式x-=x+x的值为()。
A.0B.-20C.-10D.10
70.
71.
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s;则以下选项中正确的是()。
A.if(s1>s2)S;
B.if(strcmp(s1,s2))S;
C.if(strcmp(s2,sl)>O)S;
D.if(stremp(s1,s2)>O)S;
72.
有以下程序:
main
{inta[]=(2,4,6,8,10},y=0,x,*P;
p=&a[1];
for(x=1;x<3;x++)y+=p[x];
printf("%d\n,y");
}
程序运行后的输出结果是()。
A.10B.11C.14D.15
73.在一个C源程序文件中所定义的全局变量,其作用域为()。
A.由具体定义位置和extem说明来决定范围B.所在程序的全部范围C.所在函数的全部范围D.所在文件的全部范围
74.假定已建立以下链表结构,且指针p和q已指向如图所示的结点:
75.
76.
77.有以下程序
#include<stdio.h>
main()
{unsignedchara;
a=4^6;
printf("%d,\n",a);
}
程序的运行结果是
A.4,B.2,
C.2D.4
78.设有如图所示二叉树,对此二叉树后序遍历的结果为()。
A.ZBTYCPXAB.ATBZXCYPC.TZBACYXPD.ATBZXCPY
79.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序只看做是
A.路径的集合B.循环的集合C.目标的集合D.地址的集合
80.
五、程序改错题(1题)81.下列给定程序中函数fun的功能是:用冒泡法对6个字符串进行升序排列。请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODIl.C中,不得增行或删行,也不得更改程序的结构!
六、程序设计题(1题)82.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。
例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875。
注意:部分源程序给出如下。
请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。
试题程序:
#include<stdio.h>
#defineN8
typedefstruct
{
charnum[10];
doubles[N];
doubleave;
}STREC;
voldfun(STREC*a)
{
}
voidmain
STRECs={"GA005",85.5,76,69.5,85,91,72,64.5,87.5};
inti;
fun(&s);
printf("The%ssstudentdata:\n",s.num);
for(i=0;i<N;i++)
printf("%4.1fkn",s.s[i]);
printf("\nknave=%7.3fkn",s.aVe);
printf("\n");
}
参考答案
1.A
2.Dgetmax函数接收两个整型变量x、y,使用条件运算符返回x和y中的较大值。main函数首先输入a、b、c、d4个整数值,然后通过调用getmax函数,输出它们的最大值。假设x、y是整数,选项A中,首先执行“getmax(a,b)”,返回a、b中的较大值X,再执行“getmax(x,c)”,返回x、c中的较大值y,最后执行“getmax(y,d)”,返回y、d中的较大值,满足题意,正确;选项B中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行“getmax(x,y)”,返回x、y中的较大值,正确;选项C中,首先执行“getmax(c,d)”,返回c、d的较大值X,再执行“getmax(b,x)”,返回b、x中的较大值y,最后执行“getmax(a,y)”,返回a、y中的较大值,正确;选项D中,首先执行“getmax(a,b)”,返回a、b的较大值X,再执行“getmax(c,d)”,返回c、d中的较大值y,最后执行逗号表达式“(x,y)”,返回值为7,不满足题意。故本题答案为D选项。
3.AC语言中,八进制整型常量以0开头,十六进制整型常量以0x或0X开头。C语言中的实型常量有两种表示形式:小数形式和指数形式。小数形式,表示的实型常量必须要有小数点;指数形式,在e或E后加一个整数来表示以10为底数的幂数,且规定字母e或E之前必须要有数字,且e或E后面的指数必须为整数。B选项中“028”不合法,八进制中没有数字8。C选项中,e后面的指数不是整数。D选项中“10,000”数字之间不能有逗号。故本题答案为A选项。
4.A
5.B解析:通过分析不难写出,f()函数的数学表达式为:
f(n)=1n=l;
f(n)=f(-1)+1n≠1;
在主函数中for循环执行了两次函数调用f(i)。第一次:i为1,调用f(1)得到返回值1,并把它加到j中,j的值为1。第二次i为2,调用f(n),根据递归公式可知f(2)=f(1)+1,得到返回值2并把它加到j中,j的值为3。所以最后输出,i的值为3。
6.AC语言规定数组的下标从0开始,结构体数组class初始化了前4个元素。第3个元素的name=“Marry”,则class[2].name[0]=‘M’。故本题答案为A选项。
7.B
8.D
9.A将结构变量作为形参,通过函数间形参与实参相结合的方式将整个结构传递给函数,这种传递方式是值传递。在被调用函数中,对结构形参变量值进行的任何修改都不会影啊到调凋函数中的结构变量。
10.B解析:一个函数可以带回—个整型值、字符值、实型值等,但也可以带回指针型数据,即地址。本题的定义中,包括括号和*号,由于()优先级高于*。故它是一个返回整型指针的函数。
11.A解析:本题考查的是指向函数的指针。函数指针的定义方式是:类型标识符(*指针变量名)()。其中,“类型标识符”为函数返回值的类型;“指针”指向函数的入口地址。
12.A“--k”是先自减再使用,所以第1次判断条件即while(4),条件为真输出k的值,k=4-3,结果为1;第2次判断条件即while(0),条件为假,结束循环,输出回车换行符。故本题答案为A选项。
13.A本题主要考查结构体数组。x[i]num是结构体x[i]中的num成员,x[1].name[2]是结构体x[i1中1"lame成员的第3个元素。第一次循环,i-1,输出x[1].num,x[1].name[2]的值,即2A;第二次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N;第三次循环,i=3,输出x[3】.num,x[3].name[2]的值,即4E;第四次循环,i=4,输出x[4].num,x[4].name[2]的值,即50。
14.B在函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值,A选项描述错误。定义成void类型的函数,不允许从该函数取得返回值,也不允许使用return语句,C选项描述错误。没有return语句的函数在执行到函数的最后一条语句后会自动返回到调用处,D选项描述错误。故本题答案为B选项。
15.B
16.A
17.D解析:选项A),B),C)的指针赋值表达方式都不正确,*p=5表达整数5放到指针p所指向的存储单元中。注意:通过指针引用一个存储单。
18.AA。【解析】C语言是函数式的语言。它的基本组成单位是函数,在C语言中任何程序都是由一个或者多个函数组成的。
19.D
20.D
21.a+strlen(a)或strlen(a)+aa+strlen(a)或strlen(a)+a解析:要输出suet就要将指针从字符串开始移动到字符串结尾,表达式p=a使p指向字符串的首地址;表达式p+=2使每次循环p值加2,是向前移动指针;空白处应判断是否到达字符串结尾,因此应填字符串的首地址加字符串长度,strlen(a)的返回值为字符串a所含的字符个数。
22.交换排序交换排序解析:所谓排序是指将一个无序序列整理成按值非递减顺序排列成的有序序列,常用的排序方法有:交换排序、插入排序和选择排序。其中交换排序包括冒泡排序和快速排序,插入排序包括简单插入排序和希尔排序,选择排序包括直接选择排序和堆排序。
23.120120解析:静态变量的类型说明符是static,静态局部变量属于静态存储方式,它具有以下特点:
①静态局部变量属于静态存储类别,在静态存储区内分配存储单元。在程序整个运行期间都不释放。
②对静态局部变量是在编译时赋被值的,即只赋被值一次,在程序运行时它已有被值。以后每次调用函数时不再重新赋初值而只是保留上次函数调用结束时的值。
③如在定义局部变量时不赋初值的话,则对静态局部变量来说,编译时自动赋初值0(对数值型变量)或空字符(对字符变量)。(注意:C语言中的非静态变量在定义时,系统并不会自动给它赋被值)
④虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的。
本题中函数的功能是:与for语句一起求一个整数的阶乘。
24.关系或关系表关系或关系表解析:在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系.表中的每一列称为一个属性,相当于记录中的一个数据项,对属性的命名称为属性名,表中的一行称为一个元组,相当于记录值。
25.相邻相邻
26.11<CR>23<CR>5(<CR代表换行)11<CR>23<CR>5(<CR,代表换行)解析:本题通过语句“for(i=2;i<5;i++)a[i]=a[i-2]+a[i-];”将数组中前面两项的和赋值给数组当前元素,得到a的值应为(1,1,2,3,5)。语句if(i%2==0)pfintf('\\n')是要将数组中的元素以每行2个的形式输出。
27.循环链表循环链表解析:在链表的运算过程中,采用链接方式即循环链表的结构把空表与非空表的运算统一起来。循环链表具有两个特点:①在循环链表中增加了一个表头结点,其数据域为任意或根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点。②循环链表中最后一个结点的指针不是空,而是指向表头结点。
28.n1=%d\nn2=%d\n或n1=%d\nn2=%d或n1=%2d\nn2=%2d\n或n1=%2d\nn2=%2dn1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2d\\n或n1=%2d\\nn2=%2d解析:printf函数有两种参数:格式控制参数和输出项参数,其中格式控制参数由两种成分组成:格式说明和普通字符,普通字符将被简单地复制显示,格式说明项将引起一个输出参数项的转换与显示,它是由“%”引出并以一个类型描述符结束的字符串。本题中,n1=和n2=就是普通字符,可以直接显示,又因为n1,n2为整数,所以格式说明项为%d,也可以在%与d之间加上域宽,另外还要在每行输出结束时加转义字符\\n进行换行。所以,应填写n1=%d\\nn2=%d\\n或n1=%d\\nn2=%d或n1=%2d\\nn2=%2dn或n1=%2d\\nn2=%2d。
29.(x>-5)&&(x<5)(x>-5)&&(x<5)解析:本题考查基本逻辑表达,“整数x的绝对值大于5”时值为“假”,即整数x的绝对值小于等于5,也就是整数x要大于等于-5且要小于等于5。这里“且”用“与(&&)”表示,所以C语言表达式为:(x>-5)&&(x<5)。
30.++pw[i-1]
31.b=i+1b=i+1解析:本题考查了for循环语句的执行过程。i+=2是修正表达式,执行一次循环体后i的值就增加2,i的初始值为0,每次加2之后和累加至a,所以a的值就是1~10之间的偶数之后;b的值是1~11之间的奇数和,但在输出b值时c去掉多加的11,即为1~10之间的奇数之和。
32.PI=3.14159PI=3.14159解析:本题先定义了一个宏名PI,以后在程序中出现PI都用3.14159替代,但是C语言规定:双引号中的宏名是不进行替换的。
33."bi.dat"fp'bi.dat'\r\nfp解析:打开文件函数fopen的参数是文件名,因此有fopen('bi.dat');而写文件的参数是文件指针,因此有fwrite(&j,sizeof(int),1,fp);
34.3535解析:考查swap()函数。函数swap(int*a,int*b)的功能是实现*a和*b中两个数据的交换,在主函数中调用swap(p,q)后,参形指针变量a和b分别指向i和j,在swap(int*a,int*b)执行完后,指针变量a和b分别指向j和i,而指针变量p,q所指向变量的值没有发生变化,所以输出结果为35。
35.x+=1x+=1解析:本题考查“++”,“--”运算符。“++”、“--”只能作用于变量,不能用于表达式或常量;前缀形式是在使用变量之前先将其值增1或减1,后缀形式是先使用变量原来的值,使用完后再使其增1或减1。
36.参照完整性参照完整性
37.efghefgh解析:本题定义了一个字符型指针变量p并通过赋初值让它指向了一个字符串,定义了另一个字符型指针变量r和一个长整型指针变量q。首先通过语句“q=(long*)p;”把P的地址值强制转换为长整型地址值并赋值给q,然后执行“q++;”,地址值增加了4,执行语句“r=(char*)q;”,把长整型指针变量q的值再强制转换成字符型地址值并赋给r,r的值应为字符串中字符“e”的地址,最后输出,指向的字符中,是“efgh”。
38.abcbcc
39.852852解析:循环前,变量y的值为9,其中,循环语句在y大于0情况下循环,每次循环后y的值都减1。循环体是当y能被3整除时输出表达式--y,输出的是减1后的y值。这样,第一次循环因y为9,能被3整除,输出8,y也变成8。又经两次循环,y的值变为6,又让y减1变成5,并输出5;又经两次循环,y的值变成3,让y减1变成2,输出2;再经两次循环后,y的值变成0,结束循环,所以程序输出852。
40.类类解析:面向对象模型中,最基本的概念是对象和类。对象是现实世界中实体的模型化:将属性集和方法集相同的所有对象组合在一起,可以构成一个类。
41.C本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。
42.D解析:continue语句的作用是用于结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。由于'w'>'d',执行continue语句,结束本次循环(即跳过p++;语句),还是继续比较'w'>'d',程序进入死循环。
43.A
44.C
45.B解析:do-while语句的一般格式为:
do{循环体语句}while(表达式);
先执行循环体语句一次,再判断表达式的值,若值为真,则继续执行循环,否则终止循环。本题中,先执行printf('%d\\n',x-=2),值为x=x-2,即为1。然后判断表达式的值,!(--x)为真,x=0,继续循环。再次执行循环体语句后,x=-2,此时表达式!(--x)的值为0,结束循环。
46.A解析:题中要求x的取值是小于等于0或者大于等于1,这说明表达式是或的关系,所以在写成C语言表达式应是逻辑或的关系,逻辑或运算符是'‖'。
47.B解析:C语言规定用户标识符由字母、数字和下画线组成,且第一个字符必须是字母或下画线,可见选项C),D)是错误的;此外,C语言不允许用户将关键字作为标识符,而选项A)中的void正是C语言的关键字。
48.A解析:在循环体中有一条if语句,其后面表达式为“i%2”,当i的值为奇数时,其值为真,执行其后面的语句,i的值加1,重新开始循环,当i的值为偶数时,“i%2”为假,执行“i++;s+1”。在循环中i为偶数时的值分别为0、2、4、6,加1过后的值分别为1、3、5、7,s中存放的是它们的和,值为16.所以,A选项为所选。
49.D解析:使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。软件测试的目的是为了发现错误而执行程序的过程。测试要以查找错误为中心,而不是为了演示软件的正确功能。
50.D解析:主函数的第一个参数argc为整型参数,记下从命令行输入的参数的个数;第二个参数argv是一个字符型的指针数组,它的每一个元素指向命令行输入的参数字符数。在本例中argc的值为5,argv[0]指向字符串“ex”,argv[1]指向参数字符串“abed”,argv[2]指向字符串“efg”,argv[3]指向参数字符串“h3”,argv[4]指向参数字符串“k44”。在main()函数中,for循环执行了2次,当i=1时,len=0+strlen(argv[1]),而其中argv[1]=“abcd”,故此时len的值为4;当i=3时,len=4+strlen(argv[3]),而其中argv[3]=“h3”,故此时len的值为6;当i=5时,退出循环,故最后输出的len的值为6。
51.B解析:本题自定义函数scmp()的作用是比较字符串s1和s2的大小,如果s1<s2,函数返回s1的值,否则返回s2的值。若运行时依次输入abcd、abba和abc三个字符串,执行strcpy(string,scmp(str[0],str[1]));后,string的值为abba,再执行strcpy(string,scmp(string,str[2]));,由于scmp(stringstr[2])返回string的值abba,再拷贝到字符串数组string中,所以本题输出abba。
52.C
53.D解析:本题中fun函数实现丁字符串函数str-eat的功能,将字符串aa连接到字符串ss的末尾。调用fun函数时,形参t和s分别指向了字符串ss和aa,然后通过一个while循环使t指向字符串ss的结束符的位置,第二个while循环将字符串aa中的字符(包括结束符'\\0')逐个复制到字符串ss的末尾处。
54.B解析:本题考查宏的使用规则:①字符替换格式:#define标识符字符串,行末不加分号;②双引号中出现的宏名不替换;③如果提前结束宏名的使用,程序中可以使用#ndefine;④在进行宏定义时,宏定义能层层置换,能够嵌套。
55.B解析:continue语句的作用是跳过本次循环体中余下尚未执行的语句,接着再一次进行循环条件的判定。当能被2整除时,a就会增1,之后执行continue语句,直接执行到for循环体的结尾,进行i++,判断循环条件。
56.D解析:数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束条件。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其状态的变化,以保证数据的正确性、有效性和相容性。
57.B解析:因为x的初始值为3,所以x*x=9,而y的初始值为4,所以y-=9后,y为-5,z=(x+(y-=x*x))=3+(-5)=-2。故程序执行后的输出结果是-5,-2,选项B正确。
58.B解析:数据库系统除了数据库管理软件之外,还必须有其他相关软件的支持。这些软件包括操作系统、编译系统、应用软件开发工具等,选项A的说法是错误的。数据库具有为各种用户所共享的特点,选项B的说法是正确的。通常将引入数据库技术的计算机系统称为数据库系统。一个数据库系统通常由5个部分组成,包括相关计算机的硬件、数据库集合、数据库管理系统、相关软件和人员。因此,选项C的说法是错误的。
59.D解析:因为二叉树有左、右子树之分,所以有3个结点的二叉树具有5种不同的形态。
60.B解析:第1个循环对数组a进行赋值:第2个循环对数组p进行赋值;第3个循环对k进行累加,k的初值等于5,第1次循环,k=k+p[0]*2=5+0*2=5,第2次循环,k=k+p[1]*2=5+2*2=9,第3次循环,k=k+p[2]*2=9+6*2=21并输出。
61.B本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=1,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以选项B正确。
62.C
\n本题考查do-while语句和if…else语句。do-while语句的功能是先执行循环体再判断条件,所以,先判断if语句的条件,y=-4,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将x的值减1,x=3,条件不成立,执行下面的else语句,输出Y,然后将X的值减1,x=2,满足while循环条件,继续循环。第三次循环:先判断if语句的条件,y=2,!y为逻辑0,条件不成立,执行下面的else语句,输出y,然后将X的值减1,x=l,满足while循环条件,继续循环。第四次循环:先判断if语句的条件,y=-1,!y为逻辑0,条件不成立,执行下面的else语句,输出Y,然后将x的值减1,x=0,不满足while循环条件,结束循环。所以B正确。
\n
63.D
64.A静态变量的使用;
intmain(intargc,char*argv[])
argc是命令行总的参数个数
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数,char*argv[]是一个字符数组,其大小是intargc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数;
65.A
66.B第一个for循环的结果是p[9]={0,1,2,3,4,,5,6,7,8},第二个for循环:i=0,++p,使得p指向了1,所以输出的结果是1,然后i++,i=1,++p,p指向了3……
67.B本题中,程序首先定义一个结构体,该结构体定义了四个整型变量。在主函数中,首先定义了一个该结构体的大小为2的结构体数组,并给该数组进行了初始化,从初始化语句我们可以看出,初始化时缺少了一个结构体成员的值,在这种情况下,系统会自动为缺省的成员补0,本题中就是给结构体成员变量b赋初值为0。
然后定义了一个整型变量t,接着运行t=s[0].a+s[1].b;语句,即t=1+5=6。因此,程序的最后输出结果为6,本题正确答案选B。
68.A外循环第一次i的值为1,内循环第一次j的初值为l,打印1*1=1;内循环第二次j的值为2,打印1$2=2;内循环第三次J的值为3,打印1}3=3,打印回车换行,退出内循环。外循环第二次i的值为2,内循环第一次j的初值为2,打印2*2=4;内循环第二次j的值为3,打印2。3=6,打印回车换行,退出内循环。外循环第三次i的值为3,内循环第一次j的初值为3,打印3*3=9,打印回车换行,退出内循环。
69.C算术运算符+的优先级高于-=.且-=的结合方向为自右向左,所以表达式x-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年海曙区洞桥镇人民政府招聘编外工作人员的备考题库及参考答案详解1套
- 2026年肇庆市高要区司法局公开招聘社区矫正辅助人员工作备考题库含答案详解
- 2026年青岛市李沧区人民法院公开招聘司法辅助人员备考题库带答案详解
- 2026年红河州水利局事业单位校园公开招聘备考题库及参考答案详解1套
- 中国烟草总公司郑州烟草研究院2026年高层次人才招聘备考题库及答案详解参考
- 2026年齐商银行社会招聘备考题库及完整答案详解1套
- 大数据监听技术介绍
- 2026年上海市普陀区初三语文一模试卷(暂无答案)
- 新生儿隐形杀手VKDB及新型口服维生素K1滴剂的破局
- 保温砂浆外墙外保温工法深度解析
- 2023农业执法大比武复习试题附答案
- 铁总建设201857号 中国铁路总公司 关于做好高速铁路开通达标评定工作的通知
- 孟州市浩轩塑业有限公司年产200吨塑料包装袋项目环评报告
- 卫生院消防安全演练方案篇
- 酒精体积分数质量分数密度对照表优质资料
- 电焊机操作JSA分析表
- 落地式钢管脚手架工程搭拆施工方案
- 办公室节能减排措施
- 养老院健康档案模板
- 数字信号处理课程实验教学大纲
- 新竞争环境下的企业发展战略(培训讲座课件PPT)
评论
0/150
提交评论