c语言期末考试试题及答案文档格式.docx
《c语言期末考试试题及答案文档格式.docx》由会员分享,可在线阅读,更多相关《c语言期末考试试题及答案文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
![c语言期末考试试题及答案文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/9/c4102314-0726-4997-b812-5cc8b2a46375/c4102314-0726-4997-b812-5cc8b2a463751.gif)
10.假设a=3,b=4,c=5,则逻辑表达式:
!
(a+b)+c-1&
&
b+c/2的值是( )。
A)true B)false C)0 D) 1
11.若int a=3,b=4;
则执行c=a++>
2||b-->
=4之后, b变量的值为( )。
A)3 B)0 C)4 D)2
12.以下哪个表达式的值为4( )
A)11/3 B)11.0/3 C)(flaot)11/3 D)(int)(11.0/3+0.5)
13.若变量a,i已经正确定义,且i已经正确赋值,合法的语句是()
A)a==1B)++iC)a=a++=5D)a=int(i)
14.以下程序的输出结果是()
inta=1234;
printf("
%2d"
a);
A)12B)34C)1234D)提示错误,无结果
15.设x,y分别为单精度和双精度类型变量,则下列选项( )可将表达式x+y的运算结果强制转换为整型数据。
A) (int)x+y B) int(x)+yC) int(x+y) D) (int)(x+y)
16.当a=3,b=2,c=1时, 表达式f=a>
b>
c执行完后f的值是( )
A)1 B)0 C)3 D)2
17.若x=2,y=1,则表达式x>
y?
1:
1.5的值为( )
A)1 B)1.5 C)1.0 D)2
18.在位运算中,操作数每左移一位,其结果相当于( )
A)操作数乘以2 B)操作数除以2 C)操作数乘以4 D)操作数除以4
19.在位运算中,某操作数 右移3位,其结果相当于( )
A)操作数乘以6 B)操作数除以6 C)操作数乘以8 D)操作数除以8
20.在C语言中,若以下变量均为int型,则下面程序段的输出结果是( )。
s=6,u=6;
u=s++;
u++;
printf("
%d"
u);
A)7 B)6 C)5 D)4
21.若有定义:
int x,y;
char a,b,c;
并有以下输入数据:
x=1 2 A B C<
CR>
,
则能给x赋整数1,给赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的程序段是( )
A)scanf("
x%d y=%d"
&
x,&
y);
a=getch();
b=getch();
c=getch();
B)scanf("
x=%d%d"
C)scanf("
x=%d%d%c%c%c"
7x,&
y,&
a,&
b,&
c);
D)scanf("
x=%d%d%c%c%c%c%c"
c,&
22.如下程序:
#include <
STDIO.H>
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%d\n”,m);
}
运行后m的值为( )。
(A)4 (B)3 (C)7 (D)14
23.结构化程序的三种基本结构是( )。
(A)顺序结构、选择结构、循环结构 (B)递归结构、循环结构、转移结构
(C)嵌套结构、递归结构、顺序结构 (D)循环结构、转移结构、顺序结构
24.有如下程序
main( )
{ float x=4.0,y;
if(x<
0.0) y=0.0;
else if(x<
10.0) y=1.0/x;
else y=1.0;
printf(“%f\n”,y);
}
该程序的输出结果是 ( )
A) 0.0 B) 0.25 C) 0.5 D) 1.0
25.设int a=0,b=5,c=2;
选择可执行x++的语句是( )。
(A)if(a) x++ (B)if(a=b) x++;
(C)if(a=<
b) x++;
(D)if(!
(b-c)) x++;
26.下列程序段运行后,x的值是( )。
int a,b,c,x;
a=b=c=0;
x=35;
if(!
a) x--;
else if(b);
if(c) x=3;
else x=4;
A)3 B)4 C)34 D)35
27.若要求在if后一对圆括号中表示a不等于0的关系,则能表示这一关系的表达式为
A)a<
>
0 B)!
a C)a=0 D)a
28.若N为整型变量,则for(N=10;
N=0;
N--);
循环里的循环体被( )。
A) 无限循环B) 执行10次C) 执行一次D) 一次也不执行
29.下列程序段运行后i的值是( )。
int i=10
switch(i+1)
{case 10:
i++;
break;
case 11:
++i;
case 12:
++i;
default:
i=i+1;
}
A)11 B)13 C)12 D)14
30.以下程序的输出结果为( )。
stdio.h>
main()
{ int i;
for (i=0;
i<
10;
i++) ;
printf("
i);
(A) 0 (B) 123456789 (C) 0123456789 (D) 10
31.C语句for(;
;
){ ……}是指( )。
(A)无意义 (B)无限循环 (C)循环执行1次 (D)循环执行0次
32.有如下程序
{ int x=1,a=0,b=0;
switch(x){
case 0:
b++;
case 1:
a++;
case 2:
b++;
printf(“a=%d,b=%d\n”,a,b);
A) a=2,b=1
B) a=1,b=1
C) a=1,b=0
D) a=2,b=2
33.如果程序中有 #include "
文件名"
则意味着( )。
(A) 将"
所指的该文件的全部内容,复制插入到此命令行处。
(B) 指定标准输入输出(C) 宏定义一个函数(D) 条件编译说明
34.要将一个整数12000分别以ASCII码文件和二进制文件形式存放,各自所占的存储空间数分别是( )字节。
A)5和2 B)2和5 C) 2和2 D) 5和5
35.在下面关于一维数组的定义中,其中( )有语法错0。
A) int x[ ] = {1,2,3,4,5};
B) int x[5] = {0};
C) int x[ ];
D) int x[5];
36.设有字符数组a,则的输入语句是( )。
(A) gets('
'
a'
);
(B) scanf("
%c"
a);
(C) scanf("
%s"
(D) gets("
a"
37.函数调用“strcat(strcpy(str1,str2),str3)” 的功能是( )。
(A)将字符串str1复制到字符串str2后再连接到字符串str3之后
(B)将字符串str1连接到字符串str2后再复制到字符串str3之后
(C)将字符串str2复制到字符串str1后再将字符串str3连接到str1之后
(D)将字符串str2连接到字符串str1后再将str1复制到字符串str3中
38.定义如下变量和数组:
int i;
int x[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是( )。
for(i=0;
3;
i++) printf("
%d "
x[i][2-i]);
A)1 5 9 B)1 4 7 C)3 5 7 D)3 6 9
39.C语言中,以下叙述中错误的是( )。
A) 主函数中定义的变量是全局变量B) 同一程序中,全局变量和局部变量可以同名
C) 全局变量的作用域从定义处开始到本源程序文件结束
D) 局部变量的作用域被限定在其所定义的局部范围中
40.C语言中,函数调用时若实参是数组名,则被调函数对应形参( )。
A) 可以是相应类型简单变量 B) 必须是相应类型数组名
C) 可以是相应类型数组名 D) 必须是相应类型的指针变量
41.在下面C语言的函数说明语句中,的是( )。
A) int fun(int , int);
B) int fun(int x,y);
C) int fun(x,y);
D)int fun(int x;
int y);
42.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件读写方式字符串应是( )。
A)”a+” B)”r+” C)”wb+” D)”ab”
43.C语言中规定,简单变量做实参时,它和对应形参之间的数据传递方式是( )。
(A)地址传递 (B)单向值传递 (C)有实参传给形参,再由形参传回给实参 (D)由用户指定传递方式
44.已知:
int *p;
使用“p = malloc(sizeof(int));
”语句动态申请int型的存储单元,应当使用( )。
A)int B)int* C)(*int) D)(int*)
45.在C函数中,局部变量的隐含存储类型是( )。
(A) auto (B) static (C) register (D) extern
46.有定义:
int x,*p;
,能使指针变量p指向变量x的语句是( )。
A) *p=&
x;
B) p=&
C) *p=x;
D) p=*&
47.有定义:
int x,y=10,*p=&
y;
,则能使得x的值也等于10的语句是( )。
A) x=p;
B) x=&
p;
C) x=&
D) x=*p;
48.有定义:
int *p1,*p2;
,则的赋值语句为( )。
A) p1=p2;
B) p1/=p2;
C) p1+=p2;
D) p1*=p2;
49.在C语言中,关于文件存取方式,()。
A、只能顺序存取B、只能随机存取(也称直接存取)
C、可以顺序存取,也可以随机存取D、只能从文件开头存取
50.有定义:
int a[]={1,3,5,7,9},*p=a;
,则值为5的表达式是( )。
A) p+=2, *p++ B) p+=2, *++pC) p+=2, (*p)++ D) a+=2, *a
填空
1.将百分制成绩转化为A-E这5个等级,90以上为A;
80-89为B;
70-79为C;
60-69为D,60以下为E
Voidmain()
{
Intscore;
printf(“输入一个介于0-100之间的数”);
scanf(“__1___”,&
score);
___2___(score/10)
case10:
printf(“A\n”);
case9:
case8:
printf(“B\n”);
case7:
printf(“C\n”);
case6:
printf(“D\n”);
____3___:
printf(“E\n”,score);
2.输入三角形三条边长度a,b,c,判断能不能组成三角形.如果可以输出YES,如果不能输出NO
main()
___4__a,b,c;
scanf(“%f%f%f”,&
if((a+b>
c)&
(a+c>
b)&
(b+c>
a))
printf(“YES”);
___5__
printf(“NO”);
3计算1---100的和
inti,sum;
sum=0;
i=___6___;
do
sum=sum+i;
i++
}while(i<
=___7___);
sum);
4、*计算每个学生成绩的平均分,并把结果保存在数组bb中。
例如,当score[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90.5,95,86,95,97}}时,三个学生的平均分为76.7,89.9,92.7。
#include<
#defineN3
#defineM5
void__8___(intx,inty,floatcc[],floataa[][5])
inti,j;
i++)
for(j=0;
j<
j++)
cc[i]+=aa[i][j];
cc[i]/=y;
voidmain()
inti;
staticfloatscore[N][M]={{83.5,82,86,65,67},{80,91.5,84,99,95},{90.5,95,86,95,97}};
float__9___[N];
N;
bb[i]=0;
Fun(N,M,bb,score);
\nstudent%d\taverage=%5.1f"
i+1,bb[i]);
\n"
5.判断某个大于2的证书是否是素数
intn,i,flag;
scanf("
__10___);
for(i=2;
n;
if(n%i==0)
flag=0;
_____11___;
if(flag!
=0)
yes"
else
no"
6.输出程序的运行结果
{
inta,b;
int*p_1,*p_2;
a=100;
b=10;
p_1=&
a;
p_2=&
b;
%d%d"
*p_1,*p_2);
}
运行结果____12_____,____13______
7.打印9*9乘法表,输出格式要求为:
1*1=1
2*1=22*2=4
3*1=33*2=63*3=9
intm,n;
for(m=1;
m<
=9;
m++)
for(n=1;
n___14____m;
n++)
%d*%d=%2d"
m,m,m*n);
___15___"
编程
1.*编写程序:
*计算20到30的每个整数立方根之和(保留小数点后两位)
参考答案:
math.h>
intmain()
{inti;
doubles=0;
for(i=20;
=30;
s=s+pow(i,1.0/3);
//如果平方根改为s=s+sqrt(i);
printf("
%.2f\n"
s);
return0;
运行结果:
32.11
*编写程序:
*读取文件wj6.txt中数据,一行为一组,作为三角形三边长,统计有多少组能组成三角形。
参考答案:
{inta,b,c,k=0;
FILE*p;
p=fopen("
D:
\\wj6.txt"
"
r"
while(!
feof(p))
{fscanf(p,"
%d%d%d"
if(a+b>
c&
b+c>
a&
c+a>
b)
k++;
}
k);
fclose(p);
C语言001
选择
1.A2.A3.C4.B5.D6.D7.D8.B9.B10.D11.C12.D13.B14.C15.D16.B17.C18.A19.D20.B
21.D22.C23.A24.B25.B26.B27.D28.D29.C30.D31.B32.A33.A34.A35.C36.C37.C38.C39.A40.C
41.A42.C43.B44.D45.A46.B47.D48.A49.C50.A
1.%d2.case3.default
4.float5.else
6.17.100
8.Fun9.bb
10.&
n11.break
12.10013.10
14.<
=15.\n