资源描述
C言语期中试卷
测试A卷
一、单项抉择题〔40分〕
第1题〔2.0分〕题号:1939
以下描绘中,准确的选项是〔〕。
A:预处置是指实现宏交换跟文件包括中指定的文件的挪用
B:预处置指令只能位于C源文件的开场
C:C源顺序中但凡行首以#标识的操纵行基本上预处置指令
D:预处置确实是实现C编译顺序对C源顺序第一遍,为编译词法跟语法剖析作预备
谜底:C
第2题〔2.0分〕题号:1944
履行上面顺序后,输入后果是〔〕。
main()
{a=45,b=27,c=0;
c=max(a,b);
printf("%d\n",c);
}
intmax(x,y)
intx,y;
{intz;
if(x>y)z=x;
elsez=y;
return(z);
}
A:45
B:27
C:18
D:72
谜底:A
第3题〔2.0分〕题号:1853
以下标识符中,不克不及作为正当的C用户界说标识符的是〔〕。
A:a3_b3
B:void
C:_123
D:IF
谜底:B
第4题〔2.0分〕题号:1880
以下语句的后果是〔〕。
main()
{intj;
j=3;
printf("%d,",++j);
printf("%d",j++);
}
A:3,3
B:3,4
C:4,3
D:4,4
谜底:D
第5题〔2.0分〕题号:1920
以下顺序的输入后果是〔〕。
main()
{intx=1,y=0,a=0,b=0;
switch(x)
{
case1:switch(y)
{
case0:a++;break;
case1:b++;break;
}
case2:a++;b++;break;
case3:a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
}
A:a=1,b=0
B:a=2,b=1
C:a=1,b=1
D:a=2,b=2
谜底:B
第6题〔2.0分〕题号:1910
履行以下语句后,a跟b的值分不为〔〕。
inta,b;
a=1+'a';
b=2+7%-4-'A';
A:-63,-64
B:98,-60
C:1,-60
D:79,78
谜底:B
第7题〔2.0分〕题号:1917
在以下给出的表白式中,与do--while(E)语句中的〔E〕不等价的
表白式是〔〕。
A:(!E==0)
B:(E>0||E<0)
C:(E==0)
D:(E!=0)
谜底:C
第8题〔2.0分〕题号:1899
曾经明白字母a的ASCII十进制代码为97,那么履行以下语句后的输入后果为〔〕。
chara='a';a--;
printf("%d,%c\n",a+'2'-'0',a+'3'-'0');
A:b,c
B:a--运算分歧法,故有语法错
C:98,c
D:格局描绘跟输入项不婚配,输入无定值
谜底:C
第9题〔2.0分〕题号:1900
以下顺序的输入后果为〔A〕。
main()
{intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
A:27.000000
B:27.500000
C:28.000000
D:28.500000
谜底:A
第10题〔2.0分〕题号:1921
在C言语中,为了完毕由while语句形成的轮回,while后一对圆括号
中表白式的值应当为〔〕。
A:0
B:1
C:True
D:非0
谜底:A
第11题〔2.0分〕题号:1915
以下顺序的运转后果是〔〕。
main()
{intn;
for(n=1;n<=10;n++)
{
if(n%3==0)continue;
printf("%d",n);
}
}
A:12457810
B:369
C:12
D:1234567890
谜底:A
第12题〔2.0分〕题号:1914
以下顺序的运转后果是〔〕。
main()
{
inti=1,sum=0;
while(i<10)sum=sum+1;i++;
printf("i=%d,sum=%d",i,sum);
}
A:i=10,sum=9
B:i=9,sum=9
C:i=2,sum=1
D:运转呈现过错
谜底:D
第13题〔2.0分〕题号:1876
以下顺序的输入后果是〔〕。
main()
{charc1=97,c2=98;
printf("%d%c",c1,c2);
}
A:9798
B:97b
C:a98
D:ab
谜底:B
第14题〔2.0分〕题号:1858
在C言语中,能代表逻辑值“真〞的是〔〕。
A:True
B:年夜于0的数
C:非0整数
D:非0的数
谜底:D
第15题〔2.0分〕题号:1903
a,b为整型变量,二者均不为0,以下关联表白式中恒成破的是〔〕。
A:a*b/a*b==1
B:a/b*b/a==1
C:a/b*b+a%b==a
D:a/b*b==a
谜底:C
第16题〔2.0分〕题号:1889
以下顺序的输入后果是〔〕。
main()
{inta=7,b=5;
printf("%d\n",b=b/a);
}
A:0
B:5
C:1
D:不断定值
谜底:A
第17题〔2.0分〕题号:1916
在C言语中,if语句后的一对原括号中,用以决议分支的流程的表
达式〔〕。
A:只能用逻辑表白式
B:只能用关联表白式
C:只能用逻辑表白式或关联表白式
D:可用恣意表白式
谜底:D
第18题〔2.0分〕题号:1924
设j跟k基本上int范例,那么for轮回语句
for(j=0,k=-1;k=1;j++,k++)printf("****\n");〔〕。
A:轮回完毕的前提分歧法
B:是有限轮回
C:轮回体一次也不履行
D:轮回体只履行一次
谜底:B
第19题〔2.0分〕题号:1922
以下顺序的输入为〔〕。
main()
{inty=10;
while(y--);
printf("y=%d\n",y);
}
A:y=0
B:while形成有限轮回
C:y=1
D:y=-1
谜底:D
第20题〔2.0分〕题号:1882
曾经明白year为整型变量,不克不及使表白式〔year%4==0&&year%100!=0〕
||year%400==0的值为“真〞的数据是〔〕。
A:1990
B:1992
C:1996
D:2000
谜底:A
二、推断题〔5分〕
第1题〔1.0分〕题号:605
C言语中"%"运算符的运算工具必需是整型.
谜底:Y
第2题〔1.0分〕题号:601
#define跟printf都不是C语句。
谜底:Y
第3题〔1.0分〕题号:597
假定有intⅰ=10,j=0;那么履行完语句
if(j=0)ⅰ++;elseⅰ--;ⅰ的值为11。
谜底:N
第4题〔1.0分〕题号:622
假如被挪用函数的界说出如今主调函数之前,能够不用加以申明.
谜底:Y
第5题〔1.0分〕题号:579
x*=y+8等价于x=x*(y+8)。
谜底:Y
三、顺序填空题(18分)
第1题〔9.0分〕题号:115
/*-------------------------------------------------------
【顺序填空】
---------------------------------------------------------
功用:不用第三个变量,实现两个数的对换操纵。
-------------------------------------------------------*/
#include<stdio.h>
main()
{
inta,b;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
/***********SPACE***********/
a=【?】;
/***********SPACE***********/
b=【?】;
/***********SPACE***********/
a=【?】;
printf("a=%d,b=%d\n",a,b);
}
谜底:
=======(谜底1)=======
a+b
=======(谜底2)=======
a-b
=========或=========
a-b
=======(谜底3)=======
a-b
=========或=========
a-b
第2题〔9.0分〕题号:123
/*-------------------------------------------------------
【顺序填空】
---------------------------------------------------------
功用:识不输入的字符串,每个单词输入一行
-------------------------------------------------------*/
#include<stdio.h>
#include<string.h>
voidmain()
{
intc;
intinspace;
inspase=0;
while((c=getchar())!='\n')
{
if(c==''||c=='\t'||c=='\n')
{
if(inspase=0)
{
inspace=1;
putchar('\n');
}
}
else
{
inspace=0;
putchar(c);
}
}
}
谜底:
=======(谜底1)=======
inspace=0
=======(谜底2)=======
inspace==0
=======(谜底3)=======
putchar(c)
四、编程(37分)
第1题〔15.0分〕题号:106
/*------------------------------------------------
【顺序计划】
--------------------------------------------------
功用:编写函数fun盘算以下分段函数的值:
x^2+x+6x<0且x≠-3
f(x)=x^2-5x+60≤x<10且x≠2及x≠3
x^2-x-1别的
------------------------------------------------*/
#include<stdio.h>
voidwwjt();
floatfun(floatx)
{
/**********Program**********/
/**********End**********/
}
main()
{
floatx,f;
printf("inputx=");
scanf("%f",&x);
f=fun(x);
printf("x=%f,f(x)=%f\n",x,f);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
floati;
floato;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<10;n++)
{
fscanf(IN,"%f",&i);
o=fun(i);
fprintf(OUT,"%f\n",o);
}
fclose(IN);
fclose(OUT);
}
谜底:----------------------
floaty;
if(x<0&&x!=-3.0)
y=x*x+x+6;
elseif(x>=0&&x<10.0&&x!=2.0&&x!=3.0)
y=x*x-5*x+6;
elsey=x*x-x-1;
returny;
----------------------
第2题〔22.0分〕题号:108
/*------------------------------------------------
【顺序计划】
--------------------------------------------------
功用:编写函数fun求sum=d+dd+ddd+……+dd...d(n个d),
此中d为1-9的数字。
比方:3+33+333+3333+33333(如今d=3,n=5),d跟n在主函
数中输入。
------------------------------------------------*/
#include<stdio.h>
voidwwjt();
longintfun(intd,intn)
{
/**********Program**********/
/**********End**********/
}
main()
{
intd,n;
longsum,fun();
printf("d=");
scanf("%d",&d);
printf("n=");
scanf("%d",&n);
sum=fun(d,n);
printf("sum=%ld\n",sum);
wwjt();
}
voidwwjt()
{
FILE*IN,*OUT;
intn;
inti[2];
longo;
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("ReadFILEError");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("WriteFILEError");
}
for(n=0;n<2;n++)
{
fscanf(IN,"%d",&i[n]);
}
o=fun(i[0],i[1]);
fprintf(OUT,"%ld\n",o);
fclose(IN);
fclose(OUT);
}
谜底:----------------------
longints=0,t=0;
inti;
for(i=1;i<=n;i++)
{t=t+d;
s=s+t;
d=d*10;
}
returns;
----------------------
展开阅读全文