c语言测试+答案3.docx
- 文档编号:9870852
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:21
- 大小:21.53KB
c语言测试+答案3.docx
《c语言测试+答案3.docx》由会员分享,可在线阅读,更多相关《c语言测试+答案3.docx(21页珍藏版)》请在冰豆网上搜索。
c语言测试+答案3
一、选择题本题共得(0)分
(1)下列选项中不属于结构化程序设计方法的是
A)自顶向下
B)逐步求精
C)模块化
D)可复用
考生答案:
未做题正确答案:
D
(2)模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的
A)抽象和信息隐蔽
B)局部化和封装化
C)内聚性和耦合性
D)激活机制和控制方法
考生答案:
未做题正确答案:
C
(3)在软件测试设计中,软件测试的主要目的是
A)实验性运行软件
B)证明软件正确
C)找出软件中全部错误
D)尽可能多地发现软件中的错误
考生答案:
未做题正确答案:
D
(4)栈通常采用的两种存储结构是
A)顺序存储结构和链式存储结构
B)散列方式和索引方式
C)链表存储结构和数组
D)线性存储结构和非线性存储结构
考生答案:
未做题正确答案:
A
(5)线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是
A)每个元素都有一个直接前件和直接后件
B)线性表中至少要有一个元素
C)表中诸元素的排列顺序必须是由小到大或由大到小
D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
考生答案:
未做题正确答案:
D
(6)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是
A)bdgcefha
B)gdbecfha
C)bdgaechf
D)gdbehfca
考生答案:
未做题正确答案:
D
(7)具有3个结点的二叉树有
A)2种形态
B)4种形态
C)7种形态
D)5种形态
考生答案:
未做题正确答案:
D
(8)下列叙述中,正确的是
A)用E-R图能够表示实体集间一对一的联系、一对多的联系和多对多的联系
B)用E-R图只能表示实体集之间一对一的联系
C)用E-R图只能表示实体集之间一对多的联系
D)用E-R图表示的概念数据模型只能转换为关系数据模型
考生答案:
未做题正确答案:
A
(9)在数据库设计中,将E-R图转换成关系数据模型的过程属于
A)需求分析阶段
B)逻辑设计阶段
C)概念设计阶段
D)物理设计阶段
考生答案:
未做题正确答案:
B
(10)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
A)63
B)64
C)6
D)7
考生答案:
未做题正确答案:
B
(11)以下不合法的用户标识符是
A)j2_KEY
B)Double
C)4d
D)_8_
考生答案:
未做题正确答案:
C
(12)下列是用户自定义标识符的是
A)_w1
B)3_xy
C)int
D)LINE-3
考生答案:
未做题正确答案:
A
(13)若有说明语句:
charc=′\72′;则变量c
A)包含1个字符
B)包含2个字符
C)包含3个字符
D)说明不合法,c的值不确定
考生答案:
未做题正确答案:
A
(14)表达式3.6-5/2+1.2+5%2的值是
A)4.3
B)4.8
C)3.3
D)3.8
考生答案:
未做题正确答案:
D
(15)有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&&b)&&(c<′B′);
执行该程序段后,x的值为
A)true
B)false
C)0
D)1
考生答案:
未做题正确答案:
D
(16)若要求从键盘读入含有空格字符的字符串,应使用函数
A)getc()
B)gets()
C)getchar()
D)scanf()
考生答案:
未做题正确答案:
B
(17)下列关于单目运算符++,--的叙述中正确的是
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
考生答案:
未做题正确答案:
D
(18)以下4个程序中,完全正确的是
A)#include
main();main()
{/*programming*/{/*/programming/*/
printf("programming!
\n");}printf("programming!
\n");}
C)#include
main()main()
{/*/*programming*/*/{/*programming*/
printf("programming!
\n");}printf("programming!
\n");}
考生答案:
未做题正确答案:
B
(19)若有定义floatx=1.5;inta=1,b=3,c=2;,则正确的switch语句是
A)switch(x)B)switch((int)x);
{case1.0:
printf("*\n");{case1:
printf("*\n");
case2.0:
printf("**\n");}case2:
printf("**\n");}
C)switch(a+b)D)switch(a+b)
{case1:
printf("*\n");{case1:
printf("*\n");
case2+1:
printf("**\n");}casec:
printf("**\n");}
考生答案:
未做题正确答案:
C
(20)以下数组定义中错误的是
A)intx[][3]={0};
B)intx[2][3]={{l,2},{3,4},{5,6}};
C)intx[][3]={{l,2,3},{4,5,6}};
D)intx[2][3]={l,2,3,4,5,6};
考生答案:
未做题正确答案:
B
(21)有如下程序
main()
{floatx=2.0,y;
if(x<0.0)y=0.0;
elseif(x<10.0)y=1.0/x;
elsey=1.0;
printf("%f\n",y);}
该程序的输出结果是
A)0.000000
B)0.250000
C)0.500000
D)1.000000
考生答案:
未做题正确答案:
C
(22)运行下面程序时,从键盘输入字母H,则输出结果是
#include
main()
{charch;
ch=getchar();
switch(ch)
{case′H′:
printf("Hello!
\n");
case′G′:
printf("Goodmorning!
\n");
default:
printf("Bye_Bye!
\n");
}
}
A)Hello!
B)Hello!
GoodMoring!
C)Hello!
Goodmorning!
Bye_Bye!
D)Hello!
Bye_Bye!
考生答案:
未做题正确答案:
C
(23)在下列选项中,没有构成死循环的是
A)inti=100;
while
(1)
{i=i%100+1;
if(i>100)break;
}
B)for(;;);
C)intk=10000;
do{k++;}while(k>10000);
D)ints=36;
while(s)--s;
考生答案:
未做题正确答案:
D
(24)阅读下面程序,则程序段的功能是
#include"stdio.h"
main()
{intc[]={23,1,56,234,7,0,34},i,j,t;
for(i=1;i<7;i++)
{t=c[i];j=i-1;
while(j>=0&&t>c[j])
{c[j+1]=c[j];j--;}
c[j+1]=t;}
for(i=0;i<7;i++)
printf("%d",c[i]);
putchar(′\n′);}
A)对数组元素的升序排列
B)对数组元素的降序排列
C)对数组元素的倒序排列
D)对数组元素的随机排列
考生答案:
未做题正确答案:
B
(25)现有如下程序段
#include"stdio.h"
#include"string.h"
main()
{chara[]="acfijk";/*这里是有序的字符序列*/
charb[]="befijklqswz";/*这里是有序的字符序列*/
charc[80],*p;
inti=0,j=0,k=0;
while(a[i]!
=′\0′&&b[j]!
=′\0′)
{if(a[i]
elseif(a[i]>b[j])c[k++]=b[j++];
else{c[k++]=b[j++];
i++;}}
while(a[i]==′\0′&&b[j]!
=′\0′)
c[k++]=b[j++];
while(a[i]!
=′\0′&&b[j]==′\0′)
c[k++]=a[i++];
c[k]=′\0′;
puts(c);}
则输出结果是
A)acfijkbefijklqswz
B)abceffiijjkklqswz
C)befijklqswzacfijk
D)abcefijklqswz
考生答案:
未做题正确答案:
D
(26)下面函数调用语句含有实参的个数为
func((exp1,exp2)(exp3,exp4,exp5));
A)1
B)2
C)4
D)5
考生答案:
未做题正确答案:
B
(27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为
A)EOF
B)非0值
C)0
D)NULL
考生答案:
未做题正确答案:
B
(28)以下程序的输出结果是
longfun(intn)
{longs;
if(n==1||n==2)s=2;
elses=n-fun(n-1);
returns;}
main()
{printf("%ld\n",fun(3));}
A)1
B)2
C)3
D)4
考生答案:
未做题正确答案:
A
(29)有以下程序
main()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
for(j=0;j<=3;j++)
{if(j%2)continue;
x++;
}
x++;
}
printf("x=%d\n",x);
}
程序执行后的输出结果是
A)x=4
B)x=8
C)x=6
D)x=12
考生答案:
未做题正确答案:
B
(30)下列选项中C语言中不合法的字符串常量的是
A)"\121"
B)′y′
C)"\n\n"
D)"ABCD\x6d"
考生答案:
未做题正确答案:
B
(31)若有定义inta[9],*p=a;,则p+5表示
A)数组元素a[5]的值
B)数组元素a[5]的地址
C)数组元素a[6]的地址
D)数组元素a[0]的值加上5
考生答案:
未做题正确答案:
B
(32)有以下程序
#include
main()
{charc1,c2,c3,c4,c5,c6;
scanf("%c%c%c%c",&c1,&c2,&c3,&c4);
c5=getchar();c6=getchar();
putchar(c1);putchar(c2);
printf("%c%c\n",c5,c6);
}
程序运行后,若从键盘输入(从第1列开始)
123<回车>
45678<回车>
则输出结果是
A)1267
B)1256
C)1278
D)1245
考生答案:
未做题正确答案:
D
(33)以下正确的程序段是
A)charstr1[]="12345",str2[]="abcdef";
B)charstr[10],*st="abcde";strcat(str,st);
C)charstr[10]=""。
*st="abcde";strcat(str,st);
D)char*st1="12345",*st2="abcde";strcat(st1,st2);
考生答案:
未做题正确答案:
C
(34)若有定义inta[2][3];,则对a数组的第i行第j列(假调i,j已正确说明并赋值)元素值的正确引用为
A)*(*(a+i)+j)
B)(a+i)[j]
C)*(a+i+j)
D)*(a+i)+j
考生答案:
未做题正确答案:
A
(35)有以下程序
intfun1(doublea){returna*=a;}
intfun2(doublex,doubley)
{doublea=0,b=0;
a=fun1(x);b=fun1(y);return(int)(a+b);
}
main()
{doublew;w=fun2(1.1,2.0);…}
程序执行后变量w中的值是
A)5.21
B)5
C)5.0
D)0.0
考生答案:
未做题正确答案:
C
(36)以下不能对二维数组a进行正确初始化的语句是
A)inta[2][3]={0};
B)inta[][3]={{1,2},{0}};
C)inta[2][3]={{1,2},{3,4},{5,6}};
D)inta[][3]={1,2,3,4,5,6};
考生答案:
未做题正确答案:
C
(37)下面程序段的运行结果是
char*p="abcdefgh";
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A)8
B)12
C)4
D)7
考生答案:
未做题正确答案:
C
(38)下列程序的输出结果为
main()
{
unionu
{char*name;
intage;
intincome;}s
s.name="WANGLIONG";
s.age=28;
s.income=1000;
printf("%d\n",s.age);
}
A)28
B)1000
C)0
D)不确定
考生答案:
未做题正确答案:
B
(39)有以下程序
voidswap(char*x,char*y)
{chart;
t=*x;*x=*y;*y=t;
}
main()
{char*s1="abc",*s2="123";
swap(s1,s2);printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是
A)123,abc
B)abc,123
C)1bc,a23
D)321,cba
考生答案:
未做题正确答案:
C
(40)有以下程序
intfun(intx[],intn)
{staticintsum=0,i;
for(i=0;i returnsum; } main() {inta[]={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 考生答案: 未做题正确答案: C 二、填空题本题共得(0)分 (1)排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、【1】和选择排序等。 考生答案: 未做题 正确答案: 【1】交换排序 (2)在面向对象方法中,属性与操作相似的一组对象称为【2】。 考生答案: 未做题 正确答案: 【2】类 (3)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于【3】的联系。 考生答案: 未做题 正确答案: 【3】一对多(或1∶N) (4)程序测试分为静态分析和动态测试。 其中【4】是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。 考生答案: 未做题 正确答案: 【4】静态分析(静态测试) (5)当数据的物理结构(存储结构)改变时,不影响数据库的逻辑结构,从而不致引起应用程序的变化,这是指数据的【5】。 考生答案: 未做题 正确答案: 【5】物理独立性 (6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的的输出语句【6】。 考生答案: 未做题 正确答案: 【6】printf("a=%d,b=%d",a,b); (7)以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。 当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件: a+b>c,a+c>b,b+c>a。 请填空。 main() {floata,b,c; scanf("%f%f%f",&a,&b,&c); if(【7】)printf("YES\n");/*abc能构成三角形*/ elseprintf("NO\n");/*abc不能构成三角形*/ } 考生答案: 未做题 正确答案: 【7】(a+b>c)&&(a+c>b)&&(b+c>a) (8)下面程序的运行结果是: 【8】。 fun(intt[],intn) {inti,m; if(n==1)returnt[0]; elseif(n>=2){m=fun(t,n-1);returnm;} } main() {inta[]={11,4,6,3,8,2,3,5,9,2}; printf("%d\n",fun(a,10)); } 考生答案: 未做题 正确答案: 【8】11 (9)设inta=5,b=6,表达式(++a==b--)? ++a: --b的值是【9】。 考生答案: 未做题 正确答案: 【9】7 (10)执行下面程序段后,k的值是【10】。 r=1;n=203;k=1 do{k*=n%10*r;n/=10;r++;}while(n); 考生答案: 未做题 正确答案: 【10】0 (11)下面程序的功能是: 将字符数组a中下标值为偶数的元素从小到大排列,其他元素不变。 请填空。 #include #include main() {chara[]="clanguage",t; inti,j,k; k=strlen(a); for(i=0;i<=k-2;i+=2) for(j=i+2;j<=k;j+=2;) if(【11】) {t=a[i];a[i]=a[j];a[j]=t;} puts(a);printf("\n"); } 考生答案: 未做题 正确答案: 【11】a[I]>a[j] (12)现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下: #include #include"myfun.c" main() {fun();printf("\n");} myfun.c文件如下: voidfun() {chars[80],c;intn=0; while((c=getchar())! =′\n′)s[n++]=c; n--; while(n>=0)printf("%c",s[n--]); } 当编译连接通过后,运行程序T18时,输入Thank! 则输出结果是【12】。 考生答案: 未做题 正确答案: 【12】! knahT (13)下面函数的功能是: 找出一维数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回。 数组元素中的值已在主函数中赋予。 主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。 请填空。 #include #include voidfun(inta[],intn,int*max,int*d) {intI; *max=a[0]; *d=0; for(I=0;【13】;I++) if(*max<【14】) {*max=a[I];*d=i;}} main() {inti,x[20],max,index,n=10; randomize(); for(i=0;i {x[i]=rand()%50;printf("%4d",x[i]);} printf("\n"); fun(x,n,&max,&index); printf("Max=%5d,Index=%4d\n",max,index);} 考生答案: 未做题 未做题 正确答案: 【13】I 【14】a[I] (14)有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【15】。 structnode {chardata; structnode*next;}a,b 考生答案: 未做题 正确答案: 【15】a.next=ab
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 测试 答案