二级C语言121真题无答案.docx
- 文档编号:9759202
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:16
- 大小:20.46KB
二级C语言121真题无答案.docx
《二级C语言121真题无答案.docx》由会员分享,可在线阅读,更多相关《二级C语言121真题无答案.docx(16页珍藏版)》请在冰豆网上搜索。
二级C语言121真题无答案
二级C语言-121
(总分100,考试时间90分钟)
一、选择题
1.下面不属于软件设计阶段任务的是______。
A.制订软件确认测试计划B.数据库设计
C.软件总体设计D.算法设计
2.下面属于黑盒测试方法的是______。
A.边界值分析B.路径测试
C.语句覆盖D.逻辑驱动
3.数据字典(DD)所定义的对象都包含于______。
A.软件结构图B.方框图
C.数据流图(DFD图)D.程序流程图
4.以下选项中正确的整型常量是______。
A.12.B.-20
C.1,000D.456
5.下列运算符中优先级最高的运算符是______。
A.!
B.%
C.-=D.&&
6.在关系数据库中,用来表示实体间联系的是______。
A.网状结构B.树状结构
C.属性D.二维表
7.下列关于栈的叙述中,正确的是______。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则
C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对
8.若变量已正确定义并赋值,符合C语言语法的表达式是______。
A.a=a+7;B.a=7+b+c,a++
C.int(12.3%4)D.a=a+7=c+b
9.设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为______。
A.20B.0或35
C.15D.16
10.有两个关系R和S如下:
R
ABC
a12
b21
c31
S
ABC
c31
则由关系R得到关系S的操作是______。
A.自然连接B.并
C.选择D.投影
11.以下叙述中正确的是______。
A.在C语言程序中,main函数必须放在其他函数的最前面
B.每个后缀为.C的C语言源程序都可以单独进行编译
C.在C语言程序中,只有main函数才可单独进行编译
D.每个后缀为.C的C语言源程序都应该包含一个main函数
12.C语言中的标识符分为关键字、预定义标识符和用户标识符,以下叙述正确的是______。
A.预定义标识符(如库函数中的函数名)可用作用户标识符,但失去原有含义
B.用户标识符可以由字母和数字任意顺序组成
C.在标识符中大写字母和小写字母被认为是相同的字符
D.关键字可用作用户标识符,但失去原有含义
13.以下选项中表示一个合法的常量是(说明:
符号□表示空格)______。
A.9□9□9B.0Xab
C.123E0.2D.2.7e
14.C语言主要是借助______来实现程序模块化。
A.定义函数B.定义常量和外部变量
C.三种基本结构语句D.丰富的数据类型
15.以下叙述中错误的是______。
A.非零的数值型常量有正值和负值的区分
B.常量是在程序运行过程中值不能被改变的量
C.定义符号常量必须用类型名来设定常量的类型
D.用符号名表示的常量叫符号常量
16.若有定义和语句:
inta,b;scanf("%d,%d",&a,&b);以下选项的输入数据中,不能把值3赋给变量a,5赋给变量b的是______。
A.3,5,B.3,5,4
C.3,5D.3,5
17.C语言中char类型数据占字节数为______。
A.3B.4
C.1D.2
18.下列关系表达式中,结果为“假”的是______。
A.(3+4)>6B.(3!
=4)>2
C.3<=4||3D.(3<4)=1
19.设变量p是指针变量,语句p=NULL;是给指针变量赋NULL值,它等价于______。
A.p="";B.p="0";
C.p=0;D.p=";
20.下列叙述中正确的是______。
A.可以用关系运算符比较字符串的大小
B.空字符串不占用内存,其内存空间大小是0
C.两个连续的单引号是合法的字符常量
D.两个连续的双引号是合法的字符串常量
21.设有定义:
intx=0,*p;,立刻执行以下语句,正确的语句是______。
A.p=x;B.*p=x;
C.p=NULL;D.*p=NULL;
22.有以下程序:
#include<stdio.h>
main()
{inta=-2,b=0;
while(a++&&++b);
printf("%d,%d\n",a,b);
}
程序运行后的输出结果是______。
A.1,3B.0,2
C.0,3D.1,2
23.设有定义:
intx[2][3];,则以下关于二维数组x的叙述错误的是______。
A.x[0]可看做是由3个整型元素组成的一维数组
B.x[0]和x[1]是数组名,分别代表不同的地址常量
C.数组x包含6个元素
D.可以用语句x[0]=0;为数组所有元素赋初值0
24.有以下程序:
#include<stdio.h>
intf(intx);
main()
{inta,b=0;
for(a=0;a<3;a++)
{b=b+f(a);putchar("A"+b);}
}
intf(intx)
{returnx*x1;}
程序运行后的输出结果是______。
A.ABEB.BDI
C.BCFD.BCD
25.有以下程序:
#include<stdio.h>
main()
{chara="H";
a=(a>="A"&&a<="Z")?
(a-"A"+"a"):
a;
printf("%c\n",a);
}
程序运行后的输出结果是______。
A.AB.a
C.HD.h
26.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是______。
A.switch(a+9){casec1:
y=a-b;casec2:
y=a+b;}
B.switcha*b{case10:
x=a+b;default:
y=a-b;}
C.switch(a+b){case1:
case3:
y=a+b;break;case0:
case4:
y=a-b;}
D.switch(a*a+b*b){default:
break;case3:
y=a+b;break;case2:
y=a-b;break;}
27.有以下程序:
#include<stdio.h>
main()
{inta[]={10,20,30,40),*p=a,j;
for(i=0;i<=3;i++){a[i]=*p;p++;}
printf("%d\n",a[2]);
}
程序运行后的输出结果是______。
A.30B.40
C.10D.20
28.有以下程序:
#include<stdio.h>
#defineN3
voidfun(inta[][N],intb[])
{inti,j;
for(i=0;i<N;i++)
{b[i]=a[i][0];
for(j=i;j<N;j++)
if(b[i]<a[i][j])b[i]=a[i][j];
}
}
main()
{intx[N][N]={1,2,3,4,5,6,7,8,9},y[N],i;
fun(x,y);
for(i=0;i<N;i++)printf("%d,",y[i]);
printf("\n");
}
程序运行后的输出结果是______。
A.2,4,8,B.3,6,9,
C.3,5,7,D.1,3,5,
29.以下叙述中错误的是______。
A.函数的返回值类型不能是结构体类型,只能是简单类型
B.函数可以返回指向结构体变量的指针
C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员
D.只要类型相同,结构体变量之间可以整体赋值
30.以下选项中,合法的是______。
A.charstr3[]={"d","e","b","u","g","\0"};
B.charstr4;str4="helloworld";
C.charname[10];name="china";
D.charstr1[5]="pass",str2[6];str2=str1;
31.有以下程序:
#include<stdio.h>
main()
{char*s="[2]34";intk=0,a=0;
while(s[k+1]!
="\0")
{k++;
if(k%2=0){a=a+(s[k]-"0"+1);continue;}
a=a+(s[k]-"0");
}
printf("k=%da=%d\n",k,a);
}
程序运行后的输出结果是______。
A.k=6a=11B.k=3a=14
C.k=4a=12D.k=5a=15
32.有以下程序:
#include<stdio.h>
main()
{FILE*fp;inti,a[6]={1,2,3,4,5,6};
fp=fopen("d2.dat","w+");
for=(i=0;i<6;i++)fpintf(fp,"%d\n",a[i]);
rewind(fp);
for(i=0;i<6;i++)fscanf(fp,"%d",&a[5-i]);
fclose(fp);
for(i=0;i<6;i++)printf("%d,",a[i]);
}
程序运行后的输出结果是______。
A.4,5,6,1,2,3,B.1,2,3,3,2,1,
C.1,2,3,4,5,6,D.6,5,4,3,2,1,
33.有以下程序:
#include<stdio.h>
inta=1,b=2;
voidfun1(inta,intb)
{printf("%d%d",a,b);}
voidfun2()
{a=3;b=4;}
main()
{fun1(5,6);fun2();
printf("%d%d\n",a,b);
}
程序运行后的输出结果是______。
A.1256B.5634
C.5612D.3456
34.有以下程序:
#include<stdio.h>
voidfunc(intn)
{staticintnum=1};
num=num+n;printf("%d",num);
}
main()
{func(3);func(4);printf("n");}
程序运行后的输出结果是______。
A.48B.34
C.35D.45
35.有以下程序:
#include<stdio.h>
#include<stdlio.h>
voidfun(int*p1,int*p2,int*s)
{s=(int*)malloc(sizeof(int));
*s=*p1+*p2;
free(s);
}
main()
{inta=1,b=40,*q=&a;
fun(&a,&b,q);
printf("%d\n",*q);
}
程序运行后的输出结果是______。
A.42B.0
C.1D.41
36.有以下程序:
#include<stdio.h>
structSTU{charname[9];charsex;intscore[2];};
voidf(structSTUa[])
{structSTUb={"Zhao","m",85,90};
a[1]=b;
}
main()
{structSTUc[2]={{"Qian","f",95,92},{"Sun","m",98,99}};
f(c);
printf("%s,%c,%d,%d,",c[0].name,c[0].sex,c[0].score[0],c[0].score[1]);
printf("%s,%c,%d,%d\n",c[1].name,c[1].sex,c[1].score[0],c[1].score[1]);
}
程序运行后的输出结果是______。
A.Zhao,m,85,90,Sun,m,98,99
B.Zhao,m,85,90,Qian,f,95,92
C.Qian,f,95,92,Sun,m,98,99
D.Qian,f,95,92,Zhao,m,85,90
37.以下叙述中错误的是______。
A.可以用typedef说明的新类型名来定义变量
B.typedef说明的新类型名必须使用大写字母,否则会出编译错误
C.用typedef可以为基本数据类型说明一个新名称
D.用typedef说明新类型的作用是用一个新的标识符来代表已存在的类型名
38.有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):
#include<stdio.h>
#include<string.h>
main()
{chara[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序运行后的输出结果是______。
A.a12xyzB.12yz
C.a2yzD.bc2yz
39.若有定义语句intb=2;,则表达式(b<<2)/(3||b)的值是______。
A.4B.8
C.0D.2
40.有以下程序:
#include<stdio.h>
main()
{chara[5][10]={"one","two","three","four","five"};
inti,j;
chart;
for(i=0;i<4;i++)
for(j=i+1;j<5;j++)
if(a[i][0]>a[j][0])
{t=a[i][0];a[i][0]=a[j][0];a[j][0]=t;}
puts(a[1]);
}
程序运行后的输出结果是______。
A.fwoB.fix
C.twoD.owo
二、程序填空题
1.请补充main()函数,该函数的功能是:
输入两个正整数num1和num2,求这两个数的最大公约数和最小公倍数。
例如,若输入的两个正整数为12、4,则它们的最大公约数为4,最小公倍数为12。
注意:
部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdlib.h>
#include<stdio.h>
voidmain()
{
inta,b,num1,num2,t;
system("CLS");
printf("\nInputtwonumbers:
\n");
scanf("%d,%d",&num1,&num2);
if(num1<num2)
{
a=num2;
b=num1;
}
else
{
a=num1;
b=num2;
}
while(______)
{
t=______
a=b;
b=t;
}
printf("**mondivisor:
%d\n",a);
printf("**monmultiple:
%d\n",______);
}
三、程序改错题
1.下列给定程序中函数proc的功能是:
取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。
例如,当s中的数为123456789时,t中的数为2468。
请修改程序中的错误,使它能得出正确的结果。
注意:
不要改动main()函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
//****found****
voidproc(longs,longt)
{longs1=10;
s/=10;
*t=s%10;
//****found****
while(s<0)
{s=s/100;
*t=s%10*s1+*t;
s1=s1*10;
}
}
voidmain()
{longs,t;
system("CLS");
printf("\nPleaseenters:
");
scanf("%ld",&s);
proc(s,&t);
printf("Theresultis:
%ld\n",t);
}
四、程序设计题
1.请编写函数proc(),其功能是:
将str所指字符串中除下标为偶数、同时ASCII码值为奇数的字符外,其余的字符都删除,串中剩余字符所形成的一个新串放在t所指的数组中。
例如,若str所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除;而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除。
依此类推,最后t所指的数组中的内容应是ACEG。
注意:
部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
voidproc(char*str,chart[])
{
}
voidmain()
{
charstr[100],t[100];
system("CLS");
printf("\nPleaseenterstringstr:
");
scanf("%s",str);
proc(str,t);
printf("\nTheresultis:
%s\n",t);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 121 真题无 答案