C语言模拟试题02.docx
《C语言模拟试题02.docx》由会员分享,可在线阅读,更多相关《C语言模拟试题02.docx(25页珍藏版)》请在冰豆网上搜索。
C语言模拟试题02
一、单项选择题
1.以下字符中不是转义字符的是()。
A、'\c'
B、'\b'
C、'\\'
D、'\a'
【参考答案】错误
A
【学生答案】
[未答此题]
2.设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为()。
A、0
B、144
C、132
D、12
【参考答案】错误
A
【学生答案】
[未答此题]
3.已定义floatx=1.25,y=3.37;
根据下面的输出结果,正确的输出语句是().
y+x=4.62,y-x=2.12
A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);
C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);
D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);
【参考答案】错误
C
【学生答案】
[未答此题]
4.执行下面程序段后,b的值为().
ints=35;
chart='A';
intb;
b=((s&&4)&&(t<'a'));
A、1
B、3
C、2
D、0
【参考答案】错误
A
【学生答案】
[未答此题]
5.若k是整型,则以下程序段的执行结果是:
()
k=-3;
if(k<=0)printf("####")
elseprintf("&&&&");
A、####
B、有语法错误,无结果
C、&&&&
D、####&&&&
【参考答案】错误
B
【学生答案】
[未答此题]
6.设j和k都是int类型,则下面的for循环语句()。
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A、最多执行9次
B、是无限循环
C、循环体一次也不执行
D、最多执行10次
【参考答案】错误
D
【学生答案】
[未答此题]
7.以下正确的描述是().
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
【参考答案】错误
A
【学生答案】
[未答此题]
8.以下能对一维数组a进行正确初始化的语句是()。
A、inta[10]={};
B、inta[]={0};
C、inta[10]={10*1};
D、inta[10]=(0,0,0,0,0)
【参考答案】错误
B
【学生答案】
[未答此题]
9.以下正确的说法是().
A、函数的类型决定返回值的类型
B、定义函数时,形参的类型说明可以放在函数体内
C、return后面不能为表达式
D、如果形参与实参的类型不一致,以实参类型为准
【参考答案】错误
A
【学生答案】
[未答此题]
10.以下程序的输出结果为()。
intfunc(intx,inty)
{
return(x+y);
}
main()
{
inta=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
A、9
B、15
C、13
D、函数调用出错
【参考答案】错误
C
【学生答案】
[未答此题]
11.以下正确的说法是()。
A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
B、用户若需调用标准库函数,调用前必须重新定义
C、系统根本不允许用户重新定义标准库函数
D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
【参考答案】错误
D
【学生答案】
[未答此题]
12.在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是().
A、用尖括号时,直接按系统标准方式检索文件目录.
B、用双引号时,直接按系统标准方式检索文件目录.
C、用双括号和尖括号时,都不检查源文件所在的文件目录.
D、以上说法都不对.
【参考答案】错误
A
【学生答案】
[未答此题]
13.当说明一个结构体变量时系统分配给它的内存是()。
A、成员中占内存量最大者所需的容量
B、结构中第一个成员所需内存量
C、结构中最后一个成员所需内存量
D、各成员所需内存量的总和
【参考答案】错误
D
【学生答案】
[未答此题]
14.以下程序段给数组所有的元素输入数据,请选择正确答案填入()。
#include
main()
{inta[10],i=0;
while(i<10)scanf("%d",(_______));
.
.
.
}
A、&a[i+1]
B、a+i
C、a+(i++)
D、&a[++i]
【参考答案】错误
C
【学生答案】
[未答此题]
15.在定义构造数据类型时,不能()。
A、末尾不写分号
B、说明存储类型
C、初始化
D、说明变量
【参考答案】错误
A
【学生答案】
[未答此题]
二、判断题
1.在C程序中,%作为运算符时,是只能用于整数运算。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
2.若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
3.格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
4.charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
5.设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!
=z的值为0.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
6.运算符的级别由高向低依次为!
->算术运算符->关系运算符->逻辑运算符->赋值运算符.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
7.已知a=3,b=4,c=5,则逻辑表达式!
(a>b)&&!
c||1的值为1.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
8.for循环语句只能用于循环次数确定的情况下.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
9.break语句能够终止当前进行的多层循环.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
10.for循环的三个表达式都可以省略.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
11.下列程序段是否正确:
inta[10];
....
a++;
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
12.定义一维数组的形式为:
类型说明数组名[表达式],其中表达式必须是整型常量.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
13.字符串"Dalian"在内存中的存储长度是7.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
14.数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
15.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
16.静态局部变量是在编译时被初始化的,故它只被赋初值一次.
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
17.被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
18.假设有inta[10],*p;则p=&a[0]与p=a等价
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
19.typedef可以定义生成新的数据类型.
【学生答案】错误
未答此题
============================================================
【参考答案】
错误
20.用fopen("file","r+");打开的文件"file"可以进行修改。
【学生答案】错误
未答此题
============================================================
【参考答案】
正确
三、填空题
1.设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是_____.
【空1】错误
【学生答案】
[无]
【参考答案】
28
============================================================
2.若所用变量都已正确定义,请填写以下程序段的输出结果_____.
for(i=1;i<=5;i++);
printf("OK");
【空1】错误
【学生答案】
[无]
【参考答案】
OK
============================================================
3.c语言表达式!
(4>=6)&&(3<=7)的值是_____.
【空1】错误
【学生答案】
[无]
【参考答案】
1
============================================================
4.设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
【空1】错误
【学生答案】
[无]
【参考答案】
3
============================================================
5.按内存排列顺序,数组chara[2]中的所有元素是a[0]和_____.
【空1】错误
【学生答案】
[无]
【参考答案】
a[1]
============================================================
6.函数不可以进行嵌套定义,但可以进行嵌套_____.
【空1】错误
【学生答案】
[无]
【参考答案】
调用
============================================================
7.将数组a的首地址赋给指针变量p的语句是_____.
【空1】错误
【学生答案】
[无]
【参考答案】
p=a;
============================================================
8.设有以下结构类型说明和变量定义,则变量a在内存所占字节数是_____。
structstud{charnum[6];floats[4];doubleave;}a,*p;
【空1】错误
【学生答案】
[无]
【参考答案】
30
============================================================
四、程序设计
1./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
把20个随机数存入一个数组,然后输出该数组中的
最小值。
其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
------------------------------------------------*/
#include"stdio.h"
#include"stdlib.h"
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[],intsize)
{
/*********Begin**********/
/**********End**********/
}
main()
{
inti;
voidNONO();
for(i=0;i{
vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMininum:
Vector[%d]=%6d\n",i,vector[i]);
NONO();
}
voidNONO()
{
inti,t;
FILE*fp;
fp=fopen("out.dat","w");
for(i=0;i{
fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]);
}
t=fun(vector,VSIZE);
fprintf(fp,"\nMininum:
Vector[%d]=%6d\n",t,vector[t]);
fclose(fp);
}
【参考代码】
inti,min=0;
for(i=1;iif(list[min]>list[i])
min=i;
returnmin;
===============
【考生代码】
2./*------------------------------------------------
【程序设计】
--------------------------------------------------
功能:
把20个随机数存入一个数组,然后输出该数组中的
最小值。
其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
------------------------------------------------*/
#include"stdio.h"
#include"stdlib.h"
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[],intsize)
{
/*********Begin**********/
/**********End**********/
}
main()
{
inti;
voidNONO();
for(i=0;i{
vector[i]=rand();
printf("Vector[%d]=%6d\n",i,vector[i]);
}
i=fun(vector,VSIZE);
printf("\nMininum:
Vector[%d]=%6d\n",i,vector[i]);
NONO();
}
voidNONO()
{
inti,t;
FILE*fp;
fp=fopen("out.dat","w");
for(i=0;i{
fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]);
}
t=fun(vector,VSIZE);
fprintf(fp,"\nMininum:
Vector[%d]=%6d\n",t,vector[t]);
fclose(fp);
}
【参考代码】
inti,min=0;
for(i=1;iif(list[min]>list[i])
min=i;
returnmin;
===============
【考生代码】
五、程序改错
1./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
求1到10的阶乘的和。
------------------------------------------------------*/
#include"stdio.h"
main()
{
inti;
floats=0;
floatfac(intn);
/**********ERROR**********/
for(i=1;i<10;i++)
/**********ERROR**********/
s=fac(i);
printf("%f\n",s);
}
floatfac(intn)
{
/**********ERROR**********/
inty=1;
inti;
for(i=1;i<=n;i++)
y=y*i;
/**********ERROR**********/
return;
}
【改错1】错误
【学生答案】
for(i=1;i<10;i++)
【参考答案】
for(i=1;i<=10;i++)
for(i=1;10>=i;i++)
for(i=1;i<11;i++)
for(i=1;11>i;i++)
============================================================
【改错2】错误
【学生答案】
s=fac(i);
【参考答案】
s=s+fac(i);
s+=fac(i);
s=fac(i)+s;
============================================================
【改错3】错误
【学生答案】
inty=1;
【参考答案】
floaty=1.0;
floaty=1;
============================================================
【改错4】错误
【学生答案】
return;
【参考答案】
returny;
return(y);
return(y);
============================================================
2./*------------------------------------------------------
【程序改错】
--------------------------------------------------------
功能:
求1到10的阶乘的和。
------------------------------------------------------*/
#include"stdio.h"
main()
{
inti;
floats=0;
floatfac(intn);
/**********ERROR**********/
for(i=1;i<10;i++)
/**********ERROR**********/
s=fac(i);
printf("%f\n",s);
}
floatfac(intn)
{
/**********ERROR**********/
inty=1;
inti;
for(i=1;i<=n;i++)
y