C语言国二考试模拟卷之一Word下载.docx
- 文档编号:18848608
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:18
- 大小:21.26KB
C语言国二考试模拟卷之一Word下载.docx
《C语言国二考试模拟卷之一Word下载.docx》由会员分享,可在线阅读,更多相关《C语言国二考试模拟卷之一Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
A.voidB.aa
123_abc
BBNcas
C.as+b3D.6f
-123Do
IfSIG
11.以下所列的C语言常量中,错误的是()。
A.0xFF
B.1.2e0.5
C.2L
D.′72′
12.若变量a、i已正确定义,且i已正确赋值,合法的语句是()。
A.a==1
B.++i
C.a=a++=5
D.a=int(i)
13.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是()。
A.-3
B.9
C.-12
D.6
14.若有定义inta=5,b=7;
,则表达式a%=(b%2)运算后,a的值为()。
A.0
B.1
C.11
D.3
15.若执行以下程序时从键盘上输入9,则输出结果是()。
main()
{intn;
scanf("
%d"
&
n);
if(n++<10)printf("
%d\n"
n);
elseprintf("
n--);
}
A.11
B.10
C.9
D.8
16.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&
&
(n=c>d)运算后,n的值是()。
A.0
B.1
C.2
17.有如下程序
{intx=23;
do
{printf("
x--);
while(!
x);
该程序的执行结果是()。
A.321
B.23
C.不输出任何内容
D.陷入死循环
18.下列程序的输出结果是()。
#inlude<
stdio.h>
{inta=2,b=3,p;
p=f(a,b);
printf("
%d"
,p);
intf(a,b)
{intc;
if(a>
b)c=1:
elseif(a==b)c=0;
elsec=-1:
return(c);
A.-1
B.0
C.1
D.2
19.有下列程序:
fun(intx,intY)
{staticintm=0,i=2;
i+=m+1;
m=i+x+y;
returnm;
{intj=1,m=1,k;
k=fun(j,m);
%d,"
,k);
%d\n"
标准预测试卷
(一)第2页(共5页))
执行后的输出结果是()。
A.5,5
B.5,11
C.11,11
D.11,5
20.下列字符数组初始化语句中,不正确的是()。
A.charc[]=′goodmorning′;
B.charc[20]="
goodmorning"
;
C.charc[]={′a′,′b′,′c′,′d′};
D.charc[]={"
ffgoodmorning"
};
21.下列程序的输出结果是()。
#include<
stdio.h>
voidp(int*X)
,++*x);
voidmain()
{inty=3;
p(&
y);
A.3
B.4
C.2
D.5
22.若变量c为char类型,能正确判断出c为小写字母的表达式是()。
A.′a′<=c<=′z′
B.(c>=′a′)||(c<=′z′)
C.(′a′<=c)and(′z′>c)
D.(c>=′a′)&
(c<=′z′)
23.以下程序的输出结果是()。
{intnum=0;
while(num<=2)
{num++;
num);
A.1B.1C.1D.1
222
33
4
24.以下函数返回a所指数组中最小的值所在的下标值
fun(int*a,intn)
{inti,j=0,p;
p=j;
for(i=j;
i<n;
i++)
if(a[i]<a[j])return(p);
在下划线处应填入的是()。
A.i=p
B.a[p]=a[i]
C.p=j
D.p=i
25.有如下程序段
inta=14,b=15,x;
charc=′A′;
x=(a&
b)&
(c<′B′);
执行该程序后,x的值为()。
A.true
B.false
C.0
D.1
26.以下程序的输出结果是()。
{inti,a[4][4]={{1,3,5},{2,4,6},{3,5,7}};
%d%d%d%d\n"
a[0][3],a[1][2],a[2][1],a[3][0];
A.0650
B.1470
C.5430
D.输出值不定
27.下列程序中函数son()的功能是对数组a中的数据进行由大到小的排序。
voidsort(inta[],intn)
{inti,j,t;
for(i=0;
i<
n-1;
for(j2i+l;
j<
n;
j++)
if(a[i]<
a[j])
{t=a[i];
a[i]=aD];
a[j]=t;
{inta[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&
a[1],7);
10;
i++)printf("
,a[i]);
程序运行后的输出结果是()。
A.1,2,3,4,5,6,7,8,9,10,
B.10,9,8,7,6,5,4,3,2,1,
C.1,8,7,6,5,4,3,2,9,10,
D.1,2,10,9,8,7,6,5,4,3,
28.下列判断正确的是()。
A.chara="
ABCD"
;
等价于char*a;
*a="
B.charstr[10]={"
);
等价于charstr[10];
str[]={ffABCD"
C.char*s="
:
等价于chars;
*s="
D.charc[5]="
d[5]="
等价于charc[5]-d[5]="
29.有如下程序
{intn[5]={0,0,0},i,k=2;
for(i=0;
i&
n[k]);
);
该程序的输出结果是()
A.不确定的值
B.2
C.1
D.0
30.当执行下面的程序时,如果输入ABC,则输出结果是()。
#include"
stdion.h"
string.h"
{charss[10]="
1,2,3,4,5"
gets(ss);
strcat(ss,"
6789"
%s\n"
ss);
A.ABC6789
B.ABC67
C.12345ABC6
D.ABC456789
31.以下程序的输出结果是()。
#defineM(x,y,z)x*y+z
{inta=1,b=2,c=3;
m(a+b,b+c,c+a));
A.19
B.17
C.15
D.12
32.有以下程序
{intk=5,n=0;
{switch(k)
{case1:
case3:
n+=1;
k--;
break;
default:
n=0;
case2:
case4:
n+=2;
}while(k>
0&
n<
5);
A.235
B.0235
C.02356
D.2356
33.下面for语句的循环次数为()。
for(x=1,y=0;
(y!
=19)&
(x<
6);
x++);
A.是无限循环
B.循环次数不定
C.最多执行6次
D.最多执行5次
34.对下述程序的判断中,正确的是()。
{char*p,s[256];
p=s;
while(strcmp(s,"
theend"
)
{printf("
Inputthestring:
"
gets(s);
while(*p)
putchar(*p++);
}}
A.此程序循环接收字符串并输出,直到接收到字符串"
为止
B.此程序循环接收字符串,接收到字符串"
则输出,否则程序终止
C.此程序循环接收字符串并输出,直到接收字符串"
为止,但因为代码有错误,程序不能正常工作
D.此程序循环接收字符串并将其连接在一起,直到接收字符串"
为止,输出连接在一起的字符串
35.下列程序的输出结果是()。
{inti,s=0;
for(i=1;
10;
if(!
(i%2)&
!
(i%3))s+=i;
s);
A.4
B.39
C.45
36.有以下程序
voidfun2(chara,charb){printf("
%c%c"
a,b);
chara=′A′,b=′B′;
voidfun1(){a=′C′;
b=′D′;
}
{fun1();
fun2(′E′,′F′);
程序的运行结果是()。
A.CDEF
B.ABEF
C.ABCD
D.CDAB
37.有以下程序
{charc1=′1′,c2=′2′;
c1=getchar();
c2=getchar();
putchar(c1);
putchar(c2);
当运行时输入a<
回车>
后,下列叙述中正确的是()。
A.变量c1被赋予字符a,c2被赋予回车符
B.程序将等待用户输入第2个字符
C.变量c1被赋予字符a,c2中仍是原有字符2
D.变量c1被赋予字符a,c2中将无确定值
38.下述程序的输出结果是()。
#defineN20
fun(inta[],intn,intm)
{inti,j;
for(i=m;
i>
n;
i--)a[i+1]=a[i]
{inti,a[N]={1,2,3,4,5,6,7,8,9,10};
fun(a,2,9);
5;
a[i]);
A.10234
B.12344
C.12334
D.12234
39.若要用函数fopen打开一个新的二进制文件,该文件要既能读也能写,则应以哪种方式打开文件()。
A."
wb"
B."
wb+"
C."
rb+"
D."
rb"
40.下列叙述中错误的是()。
A.在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值
B.在C语言中,在调用函数时,实参和对应形参在类型上只需赋值兼容
C.在C语言中,外部变量的隐含类型是自动存储类别
D.在C语言中,函数形参的存储类型是自动(auto)类型的变量
上机
一、程序填空题
1.原题:
请补充函数proc,该函数的功能是:
求200(不包括200)以内能被2或5整除,但不能同时被2和5整除的自然数。
结果保存在数组bb中,函数proc返回数组bb中的元素。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的横线上填入所编写的若干表达式或语句。
试题程序:
#include<
stdlib.h>
#defineM200
intproc(intbb[])
{
inti,j;
for(【1】;
i<
200;
i++)
if((i%2!
=0&
i%5==0)‖(i%2==0&
i%5!
=0))
【2】;
【3】;
inti,n;
intbb[M];
system("
CLS"
n=proc(bb);
for(i=0;
if(i%10==0)
\n"
%4d"
bb[i]);
2.答案:
【1】i=1,j=0【2】bb[j++]=i【3】returnj
3.解析:
由函数proc可知,变量i和j是判断能被2或5整除,但不能同时被2和5整除的自然数,其分别初始化为1和0。
因此【1】填i=1,j=0;
每一个符合条件的自然数放在数组bb中,因此【2】填bb[j++]=i;
题目中要求将符合条件的自然数的个数返回给主函数,因此【3】填returnj。
二、程序改错题
下列给定程序中,函数proc的功能是找出100~m(m不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。
请修改程序中的错误,使它能得到正确结果。
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#defineM1000
intproc(int*s,intn)
inti,j,k,a,b,c;
j=0;
for(i=100;
i++)
/*******found*******/
k=n;
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c)
s[j]=i;
returnj;
inta[M],m,num=0,i;
\nEnterm(<
=1000):
"
m);
}
while(m>
1000);
num=proc(a,m);
\n\nTheresult:
num;
%5d"
\n\n"
(1)错误:
正确:
k=i;
(2)错误:
s[j++]=i;
要找出所有符合条件的整数,就需要对1~n之间的每一个数进行检验,因此for循环中的k=n应改为k=i;
每一个符合要求的整数存放在数组s中,因此s[j]=i应改为s[j++]=i。
三、程序设计题
请编写一个函数proc,它的功能是:
比较两个字符串的长度,(不得调用C语言中求字符串长度的函数),函数返回较长的字符串。
若两个字符串长度相等,则返回第1个字符串。
例如,若输入jiangxi<
CR>
beijing<
(<
为回车键)则函数返回jiangxi。
请勿改动主函数main和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
char*proc(char*s,char*t)
{
chara[20],b[10],*p,*q;
Input1thstring:
gets(a);
Input2thstring:
gets(b);
%s"
proc(a,b));
char*proc(char*s,char*t)
inti,j;
s[i]!
=‘\0’;
i++);
/*i表示s数组的长度*/
for(j=0;
t[j]!
j++);
/*j表示t数组的长度*/
if(i>
=j)/*当i大于j,说明s数组的长度大,因此返回s*/
returns;
else/*否则则返回t*/
returnt;
题目中要求不能用C语言中提供求字符串长度的函数,因此可以通过移动字符串指针来计算字符串的长度,定义两个变量分别存放两个字符串的长度。
最后比较两个字符串的长度,返回相对较长的那个字符串。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 考试 模拟 之一