计算机模拟考试第三卷.docx
- 文档编号:30215996
- 上传时间:2023-08-07
- 格式:DOCX
- 页数:15
- 大小:22.83KB
计算机模拟考试第三卷.docx
《计算机模拟考试第三卷.docx》由会员分享,可在线阅读,更多相关《计算机模拟考试第三卷.docx(15页珍藏版)》请在冰豆网上搜索。
计算机模拟考试第三卷
第三卷
1.下列对C语言程序的描述中,正确的是_C_。
A.C语言程序总是从第一个定义的函数开始执行
B.C语言程序总是从最后一个定义的函数开始执行
C.C语言程序总是从main()函数开始执行
D.C语言程序中的main()函数必须放在程序的开始部分
2.设有chara='\101';,则变量a包含_A_个字符。
A.1
B.2
C.3
D.4
3.以下选项中,可以作为C语言用户标识符的一组是___B___。
A.void、define、WORD
B.a3_b3、_123、xyz
C.For、_abc、case
D.2a、Do、sizeof
4.已知intc1=5,c2=2,c3;,则执行c3=c1/c2;后,c3的值是___D___。
A.5
B.2.5
C.3
D.2
5.设有inta;intf=3;,则执行语句a=(f++)%3;后a的值是___A___。
A.0
B.1
C.2
D.3
6.执行语句inta=2;a+=a*a;后,变量a的值是___A___。
A.6
B.8
C.2
D.10
7.设有inta;,执行语句a='A'+1.6;后,则正确的叙述是___D___。
A.a的值是字符'C'
B.a的值是浮点型
C.C语言不允许字符型和浮点型相加
D.a的值是字符'A'的ASCII码值加上1
8.以下选项中,能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是___D___。
A.a>=0||a<=10
B.a≥10||a≤0
C.a>=10&&a<=0
D.a>=10||a<=0
9.执行语句:
scanf("x=%f,y=%f",&x,&y);,使得x、y均为1.2,则正确的输入形式是___C___。
A.1.2,1.2
B.1.21.2
C.x=1.2,y=1.2
D.x=1.2y=1.2
10.以下程序段的输出结果是___B___。
inta=1,b=1;
if(a<1)
if(b<2)b=0;
elseb=2;
printf("%d\n",b);
A.0
B.1
C.2
D.3
11.执行以下程序段后,输出的结果是___D___。
inta=1;
switch(a)
{
case1:
printf("你好");
case2:
printf("再见");break;
default:
printf("晚安");
}
A.你好
B.再见
C.晚安
D.你好再见
12.若有intn;,则循环语句for(n=-1;n==1;)n++;的循环体___C___。
A.执行两次
B.执行无限次
C.一次也不执行
D.只执行一次
13.执行如下程序段后,输出结果是___B___。
intm=6;
while(m>0)m=m-3;
printf("%d\n",m);
A.-1
B.0
C.1
D.2
14.执行以下程序段后,输出的结果是___C___。
intx=1,y=0;
while(x<6)
{
x++;
if(x%2)continue;
y=y+x;
}
printf("%d,%d\n",x,y);
A.1,0
B.5,6
C.6,12
D.6,6
15.以下能正确定义一维数组的选项是___B___。
A.inta{10};
B.inta[10];
C.inta(10);
D.inta[10.0];
16.若有inta[][3]={1,2,3,4,5,6};,则数组元素a[1][0]的值是___C___。
A.1
B.2
C.4
D.5
17.设有定义:
charx[]="abcdefg",y[]={'a','b','c','d','e','f','g'};,则下面叙述中正确的是___C___。
A.数组x和数组y等价
B.数组x和数组y元素个数相同
C.数组x的元素个数比数组y元素个数多
D.数组x的元素个数比数组y元素个数少
18.关于函数的说法正确的是___B___。
A.函数可以嵌套定义,但不可以嵌套调用
B.函数不可以嵌套定义,但可以嵌套调用
C.函数的定义和函数的调用均不可以嵌套
D.函数的定义和函数的调用均可以嵌套
19.函数的形式参数的作用域是___A___。
A.本函数的全部范围
B.本程序的全部范围
C.本文件的全部范围
D.从定义开始至本文件结束
20.若用数组名作为函数调用的实参,传递给形参的是___B___。
A.数组元素的个数
B.数组的首地址
C.数组全部元素的值
D.数组第一个元素的值
21.下列语句中,定义指针变量p的正确语句是____C___。
A.floatx,p=&x;
B.floatx,*p=x;
C.floatx,*p=&x;
D.floatx,*p=*x;
22.若有定义语句inta[5]={0,1,2,3,4},*p=a;,则不是对a数组元素的正确引用是___D___。
A.a[p-a]
B.*(&a[2])
C.*p
D.*(*(a+2))
23.下列关于编译预处理命令的说法中,正确的是___C___。
A.一条文件包含命令能包含多个文件
B.编译预处理命令结尾必须加分号
C.一行只能书写一条编译预处理命令
D.编译预处理命令中的"#"可以省略
24.设有定义语句:
structstu
{
intx;
floaty;
}stp;,则下列叙述中不正确的是___D___。
A.struct是定义结构体类型的关键字
B.structstu是用户定义的结构体类型
C.x和y都是结构体成员
D.stp是用户定义的结构体类型名
25.以读写方式打开一个已有的二进制文件data.bin,以下选项中正确的是___A___。
A.FILE*fp;fp=fopen("data.bin","rb+");
B.FILE*fp;fp=fopen("data.bin","w");
C.FILE*fp;fp=fopen("data.bin","a");
D.FILE*fp;fp=fopen("data.bin","r");
每题15分,共30分
(1)程序中标有/*ERROR*/的程序行有错,请直接在该行修改。
(2)请勿删除或修改/*ERROR*/错误标志。
(3)请勿将错误行分成多行。
(4)请勿修改错误语句的结构或其中表达式的结构,如错误语句:
if((A+B)==(X=X+Y))...正确形式为if((A+B)!
=(X=X+Y))...,若改成:
if((B+A)!
=(X=X+Y))...或if((X=X+Y)!
=(A+B))...或
if((A+B)!
=(X+=Y))...等形式均不得分。
(5)请勿改动程序的其它部分,否则将影响考生成绩。
题目:
在屏幕上输出以下图形(星号之间没有空格)。
*
**
***
****
*****
****
***
**
*
#include
voidmain()
{
inti,j;
i=1;/*$ERROR$*/
while(i<5)
{
j=0;
while(j<4-i)
{
printf("");/*输出一个空格*/
j++;
}
j=0;
while(j<=i)
{
printf("*");
j++;
}
printf("\n");
i++;
}
i=4;
while(i>0)
{
j=0;
while(j<4-i)/*$ERROR$*/
{
printf("*");
j++;
}
printf("\n");
i++;/*$ERROR$*/
}
}
参考答案:
$1$:
i=0;
$2$:
while(j
$3$:
i--;
题目:
删除字符串中的所有空格字符。
#include
voidmain()
{
chars[100]="Ilovethisprogram.";
inti,j;
j=0;
for(i=0;s[i]!
='\0';i++)
{
if(s[i]!
='')
{
s[j]=s[i];
i++;/*$ERROR$*/
}
}
s[j]="\0";/*$ERROR$*/
printf("%c\n",s);/*$ERROR$*/
}
参考答案;
$1$:
j++;
$2$:
s[j]='\0';
$3$:
printf("%s\n",s);
每空5分,共15分
注意事项:
(1)请勿打开多个C程序,关闭程序前请确认程序是否保存完毕。
(2)在标有/*$BLANK$*/的程序行进行填空,先删除该行中的下划线,然后直接填入正确内容。
(3)请勿删除或修改/*$BLANK$*/标志。
(4)请勿将填空行分成多行。
(5)请勿修改填空行语句的结构。
(6)请勿改动程序的其它部分,否则将影响考生成绩。
题目:
从键盘输入一个正整数m,计算并输出其所有因子(包含1和m)之和。
#include
voidmain()
{
inti,m,sum;
___________;/*$BLANK$*/
scanf("%d",___________);/*$BLANK$*/
i=1;
while(i<=m)
{
if(m%i==0)
sum+=i;
___________;/*$BLANK$*/
}
printf("%d\n",sum);
}
参考答案;
$1$:
sum=0;
$2$:
scanf("%d",&m);
$3$:
i++;
综合应用题(第一题8分,第二题10分,第三题12分,共30分)
注意事项:
(1)请勿打开多个C程序,关闭程序前请确认程序是否保存完毕。
(2)第1、2、3题程序文件名分别为Program1.C、Program2.C、Program3.C,已存储在考生文件夹下的相应文件夹内。
题目:
键盘输入一元二次方程的二次项系数a(不等于0)、一次项系数b和常数项c,若有实根时,计算并输出方程的根,否则输出“无实根”。
#include
#include
voidmain()
{
/*考生在此行下设计程序,不得删除本行*/
}
参考答案;
#include
#include
voidmain(
{/*考生在此行下设计程序,不得删除本行*/
floata,b,c,delt;
printf("输入一元二次方程的系数和常数项abc:
");
scanf("%f%f%f",&a,&b,&c);
if(a==O)
elseprintf("该方程不是一元二次方程。
\n");
i
delt=b*b-4*a*c;
if(delt>O)
{
printf("x1=%f\n",(-b+sqrt(delt))/(2*a));printf("x2=%f\n",(-b-sqrt(delt))/(2*a));
elseif(delt==O)
{
printf("x1=x2=%f\n",(-b)/(2*a));
}elseprintf("无实根\n");
题目:
根据下式求满足s>20202020时的最小正整数n。
说明:
(1)要求使用循环实现;
(2)输出结果形式为:
n=1234
#include
voidmain()
{
/*考生在此行下设计程序,不得删除本行*/
}
参考答案;
#include
voidmain()
/*考生在此行下设计程序,不得删除本行*
ints=0,n=0;
while(s<=20202020)
n=n+1;
s+=2*n;
printf("n=%d\n",n);
参考程序二:
#include
voidmain()
*考生在此行下设计程序,不得删除本行*
ints=0,i;
for(i=2;s<=20202020;i+=2)
s+=i;
]printf("n=%d\n",(i-2)/2);
题目:
某班级有30名同学,C语言课程的平时成绩和期末成绩分别存储在数组a和b中,请计算总评成绩,并存储在数组c中。
总评成绩=平时成绩*30%+期末成绩*70%
统计并输出总评成绩及格人数和不及格人数。
#include
voidmain()
{
/*平时成绩*/
inta[30]={78,79,76,83,87,83,89,94,65,34,65,78,64,84,67,22,95,93,86,85,87,88,98,95,73,82,87,56,87,23};
/*期末成绩*/
intb[30]={65,86,26,65,75,78,56,84,85,61,74,69,33,78,76,63,88,95,82,89,97,78,66,83,85,72,91,54,78,70};
/*考生在此行下设计程序,不得删除本行*/
}
参考答案;
#include
voidmain()
*平时成绩*
inta[30]=
{78,79,76,83,87,83,89,94,65,34,65,78,64,84,67,22,95,93,86,85,87,88,98,95,73,82,87,56,87,23};
*期末考试成绩*
intb[30]=
{65,86,26,65,75,78,56,84,85,61,74,69,33,78,76,63,88,95.82.89,97,78,66,83,85,72,91,54,78,70};
*考生在此行下设计程序,不得删除本行*
inti,pass=0,nopass=0;
floatc[30];
for(i=0;i<30;i++)
c[i]=a[i]*0.3+b[i]*0.7;
if(c[i]>=60)pass++;
elsenopass++;
]printf("总评成绩及格%d人,不及格%d人\n",pass,nopass);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 模拟考试 第三