版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2022年河南省商丘市全国计算机等级考试C语言程序设计测试卷一(含答案)学校:________班级:________姓名:________考号:________
一、单选题(20题)1.对n个元素的有序表A[1..n]进行顺序查找,其成功查找的平均查找长度(即在查找表中找到指定关键码的元素时,所进行比较的表中元素个数的期望值)为()
A.nB.(n+1)/2C.log2nD.n^2
2.将数组a[0,1,…,m-1]作为循环队列SQ的存储空间,f为队头指示,r为队尾指示,则执行出队操作的语句为()A.f=f+1B.f=(f+1)%mC.r=(r+1)%mD.f=(f+1)%(m+1)
3.在一个链式队列中,假设f和r分别为队头和队尾指针,则删除结点的运算是()。
A.r=f->nextB.r=r->nextC.f=f->nextD.f=r->next
4.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
A.单链表B.单循环链表C.带尾指针的单循环链表D.带头结点的双循环链表
5.设有定义:floata=2,b=4,h=3;以下c语言表达式中与代数式(a+B)h计算结果不相符的是()。A.(a+B)*h/2B.(1/2)*(a+B)*hC.(a+B)*h*1/2D.h/2*(a+B)
6.
7.
8.下列程序的输出结果是()。main(){inta=1,b=2;printf("%d,%d\n",--a,++b);}
A.1,2B.1,3C.0,2D.0,3
9.如果最常用的操作是取第i个结点及其前驱,最节省时间的存储方式是()。
A.单链表B.双向链表C.单循环链表D.顺序表
10.有以下程序:#include<stdio.h>,main(){intS;scanf("%d",&s);while(s>O){switch(s){casel:printf("%d",s+5);case2:printf("%d",s+4);break;case3:printf("%d",s+3);default:("%d",s+1);break;}scanf("%d",&s);}}运行时,若输入123450<回车>,由输出结果是()。A.6566456B.66656C.66666D.6666656
11.下列程序段中完全正确的是()。A.int*p;scanf(“%d”,&p);
B.int*p;scanf(“%d”,p);
C.intk,*p=&k;scanf(“%d”,p);
D.intk,*p;*p=&k;scanf(“%d”,p);
12.下列定义数组的语句中错误的是()。
A.intnum[][3]={{1,2},3,4,5,6};
B.intnum[2][4]={{1,2},{3,4},{5,6}};
C.intnum[]={1,2,3,4,5,6};
D.intnum[][4]={1,2,3,4,5,6};
13.有以下程序:#include<stdio.h>main(){charch[]=“uvwxyz”,*pc;pc=ch;printf(“%c\n”,*(pc+5));}程序的运行结果是()
A.zB.0C.元素ch[5]的地址D.字符y的地址
14.下列叙述中错误的是()。A.在程序中凡是以“#”开始的语句行都是预处理命令行
B.预处理命令行的最后不能以分号表示结束
C.#defineMAX是合法的宏定义命令行
D.C程序对预处理命令行的处理是在程序执行的过程中进行的
15.使用下列二维图形变换矩阵A=a*T,,其中,a是行向量(xy1),是齐次坐标形式的二维点。给定的变换矩阵T如下所示,则将产生的变换结果为()A.图形放大2倍
B.图形放大2倍,同时沿X、Y坐标轴方向各移动一个单位
C.沿X坐标轴方向各移动2个单位
D.沿X坐标轴放大2倍,同时沿X、Y坐标轴方向各移动一个单位
16.若有以下定义,则对a数组元素地址的正确引用是()。
inta[5],*p=a;A.A.p5B.*a1C.&a1D.&a[0]
17.下列能正确进行字符串赋值的是()。A.B.C.D.
18.有以下定义和语句:structworkers{intnum;charname[20];charC;struct{intday;intmonth;intyear;)S;};structworkersw,*pw;pw=&w;能给w中year成员赋1980的语句是()。A.*pw.year=1980;
B.w.year=1980;
C.pw->year=1980
D.w.S.year=1980;
19.
20.一个优化的程序可以生成n个元素集合的所有子集,那么该程序的时间复杂度是()
A.O(n!)B.O(nlogn)C.O(n^2)D.O(2^n)
二、2.填空题(20题)21.设有以下结构体类型:
structst
{charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组student中的元素都已有值。若要将这些元素写到硬盘文件fp中,请将以下fwrite语句补充完整:
fwrite(student,【】,1,fp);
22.阅读程序:
main()
{charstrl[]="howdoyoudo",str2[10];
char*p1=strl,*p2=str2;
scanf("%s”,p2);
printf("%s”,p2);
printf("%s\n",p1);
}
运行上面的程序,输入字符串HOWDOYOUDO则程序的输出结果是【】。
23.数据结构分为逻辑结构与存储结构,线性链表属于【】。
24.函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,当s<t时返回负值。请填空。
my_cmp(char*s,char*t)
{while(*s==*t)
{if(*s=='\0')return0;
++s;++t;
}return【】;
}
25.数据库系统的三级模式分别为______模式、内部级模式与外部级模式。
26.以下程序的功能是:利用指针向三个整型变量,并通过指针运算找出三个数中最大值,输出到屏幕上。请填空
main()
{intx,y,z,max,*px,*py,*pz,*pmax;
scanf("%d%d%d",&x,&y,&z);
px=&x;py=&y;pz=&z;pmax=&max;
if(*pmax<*py)*pmax=*py;
if(*pmax<*pz)*pmax二*pz;
printf("max=%d\n",max);}
27.下面程序的功能是将字符串a下标值为偶数的元素由小到大排序,其他元素不变,请填空。
#include<stdio.h>
main()
{chara[]="labchmfye",t;
inti,j;
for(i=0;i<7;i+=2)
for(j=i+2;j<9;【】)
if(【】)
{t=a[i];a[i]=a[j];a[j]=t;
}
puts(a);
printf("\n");
}
28.以下程序通过函数指针p调用函数fun,请在填空栏内写出定义变量p的语句。
voidfun(intx,int*y)
{……}
main()
{inta=10,b=20;
【】;/*定义变量p*/
p=fun;p(&a,&b);
}
29.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【】(要求形参名为b)。main(){doubles[10][22];intn;……fun(s);……}
30.若有如下程序:
main()
{intx=4;y=3,Z=2,t;
t=x<y<z;
printf("%d\n",t);
}
则程序运行后的输出结果是【】。
31.性结构中,队列的操作顺序是先进先出,而栈的操作顺序是______。
32.下列程序的循环次数是______。
x=2;
do
{x=x*x;}
while(!x);
33.十进制数53转换为十六进制数为【】。
34.以下程序的输出结果是______。
main()
{inta=1,b=2;
a=a+b;b=a-b;a=a-b;
printf("%d,%d\n",a,b);
}
35.设有下列程序:
#include<stdio.h>
#include<string.h>
main()
{inti;
chars[10],t[10];
gets(t);
for(i=0;i<2;i++)
{gets(s);
if(strcmp(t,s)<0)strcpy(t,s);
}
printf("%s\n",t);
}
程序运行后,从键盘上输入(<CR>代表回车符):DEF<CR>BADEF<CR>QTHRG<CR>,则程
序的输出结果是______。
36.软件维护活动包括以下几类:改正性维护、适应性维护、【】维护和预防性维护。
37.在循环中,continue语句与break语句的区别是:______语句只是结束本次循环,然后进行循环的条件判定。
38.为了便于对照检查,测试用例应由输入数据和预期的【】两部分组成。
39.以下程序的输出结果是______。
#defineMCRA(m)2*m
#defineMCRB(n,m)2*MCRA(n)+m
main()
{inti-2,j=3;
printf("%d\n",MCRB(j,MCRA(i)));
}
40.以下程序运行后的输出结果是【】。
main()
{inti,j,a[][3]={1,2,3,4,5,6,7,8,9);
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)a[j][i]=0;
for(i=0;i<3;i++)
{for(j=0;j<3;j++)printf("%d",a[i][j]);
printf("\n");
}
}
三、1.选择题(20题)41.在“文件包含”预处理语句的使用形式中,当#include后面的文件名用"",(双撇号)括起时,寻找被包含文件的方式是()。
A.直接按系统设定的标准方式搜索目录
B.先在源程序所在的目录搜索,如没找到,再按系统设定的标准方式搜索
C.仅仅搜索源程序所在目录
D.仅仅搜索当前目录
42.按照“先进后出”原则组织数据的数据结构是()。
A.队列B.栈C.双向链表D.二叉树
43.下面函数调用语句含有实参的个数为func((exp1,exp2),(exp3,exp4,exp5));
A.1B.2C.4D.5
44.以下程序的运行结果是
intk=0;
voidfun(intm)
{m+=k;k+=m;printf("m=%dk=%d",m,k++);}
main()
{inti=4;
fun(i++);
printf("i=%dk=%d\n",i,k);
}
A.m=4k=5i=5k=5
B.m=4k=4i=5k=5
C.m=4k=4i=4k=5
D.m=4k=5i=4k=5
45.SQL语言又称为______。
A.结构化定义语言B.结构化控制语言C.结构化查询语言D.结构化操纵语言
46.下列司用于C语言用户标识符的—组是______。
A.voiddefineWORD
B.a3_b3_123Car
C.For-abcIFCase
D.2aDOsizeof
47.以下说法正确的是()。
A.C程序总是从第一个函数开始执行
B.在C程序中,被调用的函数必须在main函数中定义
C.C程序总是从main函数开始执行
D.C程序中的main函数必须放在程序的开始部分
48.若执行下列的程序时,从键盘上输入1和2,则输出结果是()。#include<stdio.h>main(){inta,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;S=S*S,printf("%d\n",s);}
A.1B.4C.2D.9
49.下列程序执行后的输出结果是______。main(){chararr[2][4];atrcpy(arr,"you");strcpy(arr[1],"me");art[0][3]='&';printf("%s\n",arr);}
A.you&meB.youC.meD.err
50.若要定义a为3×4的二维数组,正确的定义语句是()
A.floata(3,4);
B.floata[3][4];
C.floata(3)(4);
D.floata[3,4];
51.下列叙述中正确的是()。
A.C程序由函数组成
B.C程序由主函数构成
C.C程序由函数和过程构成
D.在C程序中无论是整数还是实数,都可以正确无误的表示出来
52.设有定义:intk=1,m=2;floatf=7;则下列选项中错误的表达式是()。
A.k=k>=kB.-k++C.k%int(f)D.k>=f>=m
53.规范化理论中,分解______主要是消除其中多余的数据相关性。
A.关系运算B.内模式C.外模式D.视图
54.下列程序的输出结果为main(){unionu{char*name;intage;intincome;}="WANGLIONG";s.age=28;s.income=1000;printf("%d\n",s.age);}
A.28B.1000C.0D.不确定
55.有以下程序:#include<stdio.h>#defineN20fun(inta[],intn,intm){inti,j;for(i=m;i>:n;i--)a[i+1]=a[i];}main(){inti,a[N.]=11,2.3,4,5,6,7,8,9,10[;fun(a,2,9)for(i=0;i<5;i++)printf("%d",a[i]);程序运行后的输出结果是()。
A.10234B.12344C.12334D.12234
56.已有定义inta=-2;和输出语句printf("%81x",a);以下正确的叙述是()。
A.整型变量的输出形式只有%d一种
B.%x是格式符的一种,它可以适用于任何一种类型的数据
C.%x是格式符的一种,其变量的值按十六进制输出,但%81x是错误的
D.%81x不是错误的格式符,其中数字8规定了输出字段的宽度
57.设有以下程序段;inta[5]={0},*p,*q;p=a;q=a;则合法的运算是______。
A.p+qB.p-qC.p*qD.p%q
58.阅读下面程序,则执行后的结果是
#include"stdio.h"
main()
{charstr[]="tomeetme",*p;
for(p=str;p<str+7;p+=2)putchar(*p);
printf("\n");}
A.tomeetmeB.tmemC.oeteD.tome
59.已知a、b、c为整型变量,若从键盘输入5<空格>6<空格>7<回车>,使a的值为5,b的值为6,c的值为7,则下列选项中正确的输入语句是()。
A.scanf("%3d%3d%3d",a,b,C);
B.scanf("%d%d%d",a,b,C);
C.scanf("%d%d%d",&a,&b,&c);
D.scanf("%d%d%d",&a,&b,&c);
60.C语言结构体类型变量在程序运行期间
A.TC环境在内存中仅仅开辟一个存放结构体变量地址的单元
B.所有的成员一直驻留在内存中
C.只有最开始的成员驻留在内存中
D.部分成员驻留在内存中
四、选择题(20题)61.以下符合C语言语法的实型常量是
A.1.2E0.7B.3.33.145EC.E23D..4E-2
62.下列数据结构中,能用二分法进行查找的是()。
A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表
63.
64.以下不正确的定义语句是
A.inty[5.3]={0,1,3,5,7,9};B.doublex[5]={2.0,4.0,6.0,8.0,10.0};
C.charc1[]={’1’,’2’,’3’,’4’,’5’};D.charc2[]={’\x10’,’\xa’,’\x8’};
65.有以下程序:
程序运行后的输出结果是()。
A.2.3B.1,3C.1,4D.1,2
66.有以下程序:
程序运行后的输出结果是()。
A.1,2,3,0,0,0,0,0,0,0,
B.1,2,3,1,2,3,0,0,0,0,
C.123,0,0,0,0,123,0,0,0,0,
D.1,2,3,0,0,1,2,3,0,0,
67.以下数组定义中错误的是()。
A.intx[2][3]=|1,2,3,4,5,6|;
B.intx[][3]=|0|
C.intx[][3]={|1,2,3|,|4,5,6|}
D.intx[2][3]=||1,2|,|3,4|,|5,6||
68.
69.有以下程序程序运行后的输出结果是()。
A.程序错无输出结果B.31.5C.7.5D.14.0
70.
71.在数据管理技术发展的三个阶段中,数据共享最好的是()。
A.人工管理阶段B.文件系统阶段C.数据库系统阶段D.三个阶段相同
72.以下程序运行后的输出结果是()。
A.2B.1C.3D.O
73.
74.以下选项中合法的表达式是()。
A.a=a+7=c+b
B.(3+x)++
C.3+x++
D.x+1=x+1
75.C语言中用于结构化程序设计的三种基本结构是A.顺序结构、选择结构、循环结构
B.if、switch、break
C.for、while、do-while
D.if、for、continue
76.设有定义:intk=0;以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A.++kB.k+=1C.k++D.k+1
77.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include<stdio.h>
#include<string.h>
voidmain()
{charss[10]="12345",
gets(ss);strcat(ss,"6789");
printf("%s\n",ss);
}
A.ABC6789B.ABC67C.12345ABC6D.ABC456789
78.有以下程序程序运行后的输出结果是()。
A.0B.2C.1D.3
79.对于循环队列,下列叙述中正确的是()。
A.循环队列中元素的个数是由队头指针和队尾指针共同决定的
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,队头指针一定大于队尾指针
D.在循环队列中,队头指针一定小于队尾指针
80.
五、程序改错题(1题)81.下列给定程序中,函数proc()的功能是:在字符串str中找出ASCⅡ码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用proc()函数之前给字符串输入DcybkdGT,调用后字符串中的内容为yDcbkdOT。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
六、程序设计题(1题)82.编写函数fun,其功能是:实现两个字符串的连接(不要使用库函数strcat),即把p2所指的字符串连接到
pl所指的字符串的后面。
例如,分别输入下面两个字符串:
程序输出:
注意:部分源程序在文件PROGl.C中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
参考答案
1.B
2.B
3.C
4.C
5.B解析:选项B中由于1和2都是整型,其1/2的运算结果为0,故整个表达式的值为0,所以它的结果和题目中要求的代数式的讨算结果不相符,所以,4个选项中选项B符合题意。
6.C
7.D
8.D解析:本题主要考查自加(++)、自减(--)运算符的使用。“++i,--i”在使用i之前,先使i的值加1或者减1,然后再使用i此时的值参与运算;“i++,i--”是在使用i参与表达式运算之后,再使i的值加1或者减1。本题中--a和++b是先执行a减1和b加1操作,再输出表达式的值。
9.D
10.A根据题意,当s=1时,输出65;当s=2时,输出6;当S=3时,则输出64;当S=4时,输出5;当s=5时,输出6;当s=0时,程序直接退出。所以最后答案为6566456,A选项正确。
11.CA选项中,没有对指针进行初始化,属于无效指针,并且在“scanf(“%d”,&p);”中无须再进行取地址操作;B选项中,没有对指针进行初始化,属于无效指针;D选项中,语句“*p=&k;”书写错误,应为“P=&k;”。故本题答案为C选项。
12.BB选项中定义的数组为2行4列,而赋值时却赋成了3行,所以错误。故本题答案为B选项。
13.A语句“pc=ch;”使得指针变量pc指向字符数组ch的首地址,即指向字符‘u’。而“pc+5”指向的是指针向后移动5位所指的字符,即指向字符‘z’,所以输出的“*(pc+5)”的值为‘z’。故本题答案为A选项。
14.C解析:预处理命令行是以“#”开始的语句,预处理命令行的最后不能以分号表示结束,预处理命令行。其中宏定义的字符替换的定义格式为:#define标识符字符串,预处理命令行是在系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。
15.D
16.D本题考查如何引用数组元素的地址。选项A)中,p5引用的是af51的地址,而数组a只有5个元素,即a[0]、a[1]、a[2]、a[3]、a[4],所以引用错误;选项B)中,*a1指的是将数组a的第一个元素加1;选项C)中,这种引用方式错误;选项D)中,&a[0]引用的是数组的首地址。
17.C选项A、B的空间不够;选项D中字符串存储要有结束符ˊ\0ˊ,且要占用一个空间,printf用来输出字符,不能输入字符串。
18.D结构workers中的成员s是一个嵌套的结构类型定义,因此在给year赋值时,要用“.”运算在深入一层访问到最基本的成员year,只有D项反映出了这一点。
19.A
20.D
21.sizeof(structst)*50sizeof(structst)*50解析:fwrite函数的一般调用形式为:fwrite(buffer,size,count,fp);其中:buffer是一个指针变量,是要输出数据的起始地址;size是要写的字节数;count是要写多少个size字节的数据项;fp是文件指针。
22.HOWhowdoyoudo
23.存储结构
24.*s-*t*s-*t解析:两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回0值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回。所以在空框处应填入*s-*t,保证在e>t时返回正值,当s<t时返回负值。
25.概念(或概念级)概念(或概念级)
26.
27.j+=2a[i]>a[j]j+=2\r\na[i]>a[j]解析:由于要对偶数位进行排位,所以空格处应填。j+2,空13处是一个排序算法中的判断语句,经过分析后应该填a[i]>a[j]。
28.void(*p)()或void(*p)(int*int*)void(*p)()或void(*p)(int*,int*)
29.
30.11解析:因为x=4,y=3,所以表达式x<y的值为假(0),又因为z=2,所以0<z的值为真(1),故最终输出的结果为1。
31.先进后出先进后出解析:队列和栈都是线性结构,但是不同之处在于队列的操作顺序是先进先出,而栈的操作顺序是先进后出。
32.11解析:do…while语句的功能是:首先执行循环体语句,然后检测循环控制条件表达式的值,若为真,则重复执行循环体语句,否则退出循环;do…while语句的特点是先执行后判断,因此循环体至少执行1次.本程序中x=2不符合循环条件,所以只循环1次。
33.35
34.21
35.QTHRGQTHRG解析:函数strcmp(t,s)用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0:若t<s,则函数值小于0。函数strcpy(t,s)的功能是,把字符数组s所指字符串的内容复制到字符数组t所指存储空间中。本题中,t[10]='CDEF'。第一次循环,s[10]='BADEF',if语句的控制条件strcmp(t,s)<0不成立,接着执行第二次循环,s='QTHRG',if语句的控制条件strcmp(t,s)<0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指存储空间中,然后输出字符数组t。
36.完善性软件维护活动包括以下几类:改正性维护,适应性维护、完善性维护和预防性维护,完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。
37.continuecontinue解析:continue语句只是结束本次循环,然后进行循环的条件判定。break语句是终止整个循环的执行,不再进行条件判定。
38.输出结果输出结果解析:注意:测试的基本方法和步骤。
39.1616解析:首先将程序中宏替换掉,先把“MCRA(i)”替换成“2*i”,然后把“MCRA(j,2*i)”替换成“2*2*j+2*i”,经计算该表达式的值为16,所以最后输出为16。
40.123056009123\r\n056\r\n009解析:本题中,定义了一个元素类型为整型的二维数组a[][3]={1,2,3,4,5,6,7,8,9},它是一个3*3的矩阵,“for(i=0;i<3;i++)for(j=i=1;j<3;j++)a[j][i]=0;”将列下标i小于行下标j的元素a[1][0]、a[2][0]、a[2][1]赋值为0,最后“for(j=0;j<3;j++)printf('%n',a[i][j]);printf('\\n');”进行换行输出,所以输出结果为:
123
056
009
41.B解析:本题考查库函数调用的知识点。格式1:#include<文件名>,预处理程序在标准目录下查找指定的文件;格式2:#include'文件名',预处理程序首先在引用被包含文件的源文件所在的目录下搜索指定的文件,如没找到,再按系统指定的标准目录搜索。
42.BB.【解析】栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元索是最后被插入的元素,也是最后被删除的元素。栈是按先进后出的原则组织数据的。
【知识拓展】“栈”的形式如手枪的弹匣,最后压入的子弹总是最先被弹出,而最先压人的子弹最后才被弹出,也就是“先进后出”。
43.B解析:函数调用的一般形式为:函数名(形参表)若函数无形参,调用形式为:函数名(),当所调用的函数用于求出某个值时,函数的调用可作为表达式出现在允许表达式出现的任何地方,本题中调用语句的参数个数为2个。
44.B解析:由于在main()函数中,变量i=4,所以就调用fun(4),则输出“m=4k=4”。然后变量k增1等于5,变量i增1等于5,所以main()函数的“printf('i=%dk=%d\\n',i,k);”语句输出“i=5k=5”。
45.CC。【解析】SQL语言的全称为StructuredQueryLanguage,它是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范。它包含数据查询语言、数据操纵语言、数据定义语言和数据控制语言4个部分。
46.B解析:C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,所以排除C和D。C语言还规定标识符不能为C语言的关键字,从而选项A(void是关键字)是错误的。
47.C解析:C程序是由main函数开始运行,通过main函数调用其他函数,所以,选项A)错误;在C程序中,函数不能嵌套定义,即不能在一个函数中定义另一个函数,选项B)错;C程序总是从main函数开始执行,但main函数不必放在最前面,故选项D)错。
48.B解析:本题考查if语句。scanf函数通过键盘读入a、b的值,a=1,b=2。第一个if语句,先判断条件,发现a<b条件成立,则s=b=2,s=s*s=4。
49.A
50.B
51.A解析:本题涉及C语言最基本的两个知识点:①C程序是由函数构成的,有且仅有一个主函数,也可以有其他的函数;②整数在允许的范围内可以准确无误的表示出来,但计算机的存储能力有限,不能表示无限精度的实数。
52.C解析:在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、||(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项B),先计算k++的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与出进行比较,故最终结果为0。
53.A解析:数据库规范化的基本思想是逐步消除数据依赖中不合适的部分,根本思想是通过分解关系运算来消除多余的数据相关性。
54.B解析:本题对共用体的使用进行了考查。由于共用体所有成员共同占据一段存储空间,所以对成员变量的赋值,后面的赋值会覆盖掉前面的赋值,因为s.income=1000;是最后一次成员变量赋值,变量age与变量income共同占据一段存储空间,所以age的值也为1000。
55.C解析:本题函数fun的作用是将指定的数组元素(下标从n~m)向后移一位。调用函数fun(a,2,9)将a[2]到a[9]的各元素依次向后移一位,最后a数组中各元素的值分别为1,2,3,3,4,5,6,7,8,9,10,程序输出数组的前5个元素:12334。
56.D解析:整型变量的输出形式有:%d,%o,%x,%u等,%x是以十六进制无符号形式输出整数。十六进制数同样也可以像%md一样按%mlx输出指定宽度的长整型数。
57.B解析:指向同一字符串的指针可以、也只能进行减运算,返回一个整型数。
58.B解析:存放字符串的字符数组的名字就是这个字符串的首地址。本题的功能是对字符串'tomeetme'进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。
59.C解析:通过scanf()函数从键盘读入数据时,接收参数的使用变量的地址值,所以选项A和B是错误的。选项D要求输入时以逗号间隔,故按题目要求的输入方式不能正确读取到3个数,也是错误的。所以正确答案是C。
60.B解析:结构体类型的变量在程序运行期间要作为一个整体占用连续的内存单元。
61.D本题主要考查实型常量的合法表示。在C语言中,实型常量主要有两种表现形式,分别为:
(1)十进制小数表示法。这种表示法中主要用数字和小数点组成实数。用这种表示法表示实数没有什么其他的要求,不容易出错。
(2)指数形式表示法,如123e3或123E3。用这种表示法表示实数需要注意以下事项。
①字母E之前必须有数字。
②字母E之后的数字必须为整数。
③字母E前后不能有空格字符。
根据前面的分析,不难看出本题中只有D选项的描述是正确的。在A选项中,由于E后面的数字是小数而不正确;在B选项中,由于E后面没有数字而不正确;在选项C中,由于E之前没有数字而不正确。
62.A\nA。【解析】二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。
\n
63.A
64.A在一维数组中要注意的是,下标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度劳动合同(实习生)
- 2024年度产品代销协议及仓储物流服务合同
- 2024年度保险代理合同(人寿保险业务)
- 液压大门操作器市场需求与消费特点分析
- 2024年度公共交通车辆采购合同
- 纳米粒度分析仪产品入市调查研究报告
- 制药剂专用板框压滤机市场发展现状调查及供需格局分析预测报告
- 2024年度影视制作许可电子合同
- 2024年度别墅区居民公约制定合同
- 2024年度建筑智能化系统集成合同
- 大咯血的护理及急救课件
- 化工检修电工试题库+参考答案
- 国家电网公司招聘高校毕业生应聘登记表
- 读音常考题型第一轮复习专项训练(试题)人教PEP版英语六年级上册
- 以循证医学为基础的静脉输液实践指南INS指南解读
- 建筑学专业基础知识必学必会考试题库(500题)
- 二年级数学欧利和他的懒弟弟优秀课件
- 220种食物的血糖生成指数(GI)表
- 生物化学实验智慧树知到答案章节测试2023年浙江大学
- 理工创新工坊智慧树知到答案章节测试2023年西安理工大学
- 演示文稿开放性骨折处理
评论
0/150
提交评论