C语言期末考试Word文档下载推荐.docx
《C语言期末考试Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言期末考试Word文档下载推荐.docx(20页珍藏版)》请在冰点文库上搜索。
![C语言期末考试Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/aa6e1575-c64f-4b9f-b477-1b493a3af8a8/aa6e1575-c64f-4b9f-b477-1b493a3af8a81.gif)
k=i*j==6;
%d\n"
k);
5、写出程序的输出结果:
i=3;
j=2;
k=1;
ij==jk);
2循环随堂测验
1、以下哪个循环和其他三条循环不等价(假设循环体都是一样的)?
A、for(i=0;
i10;
i++){...}
B、for(i=0;
++i){...}
C、for(i=0;
i++10;
){...}
D、for(i=0;
i=9;
2、while循环的条件满足的时候循环继续,而do-while的条件满足的时候循环就结束了
3、以下代码片段执行结束后,变量i的值是多少?
inti=10;
while(i0){i/=2;
}
4、以下代码片段执行结束后,变量i的值是多少?
inti=1;
do{i+=5;
}while(i17);
5、以下代码段的输出是什么?
for(inti=10;
i1;
i/=2){printf("
%d"
i++);
第3周编程练习
1、时间换算
2、分队列
第4周:
进一步的判断与循环
3多路分支随堂测验
1、写出程序的输出:
inti=1;
switch(i%3){case0:
zero"
);
case1:
one"
case2:
two"
4循环的例子随堂测验
1、以下哪种运算能从变量x中取得十进制最低位的数字
A、x/10
B、x%10
C、x*10
D、10/x
2、当需要累加一些值的时候,用来记录累加结果的变量应该被初始为:
第4周编程练习
1、奇偶个数
2、数字特征值
第5周:
循环控制
2多重循环随堂测验
1、以下代码段的输出是:
intsum=0;
for(inti=0;
i++){if(i%2)continue;
sum+=i;
}printf("
sum);
2、以下代码段的输出是:
i++){if(i%2)break;
第5周编程练习
1、素数和
2、念整数
第6周:
数组与函数
3函数的参数和变量随堂测验
1、以下哪句不是正确的函数原型?
A、intf();
B、intf(inti);
C、intf(int);
D、intf(){}
2、以下哪个函数的定义是错误的?
A、voidf(){}
B、voidf(inti){returni+1;
C、voidf(inti){}
D、intf(){return0;
3、对于不返回值而且只有一个int类型的参数的函数,以下哪些函数原型是正确的?
A、voidf(intx);
B、voidf();
C、voidf(int);
D、voidf(x);
4、以下程序的输出是什么?
voidswap(inta,intb);
intmain(){inta=5;
intb=6;
swap(a,b);
%d-%d\n"
return0;
}voidswap(inta,intb){intt=a;
a=b;
b=t;
第一次单元测验
1、以下哪个选项是判断ch是否为大写字母的正确形式?
A、ch='
A'
ch='
Z'
B、ch='
ch='
C、'
=ch='
D、ch='
||ch='
E、ch='
ANDch='
F、chBETWEEN'
AND'
Z"
2、以下代码片段的输出是:
intj=4;
for(inti=j;
i=2*j;
i++){switch(i/j){case0:
printf(“*”);
break;
printf(“#”);
}}
A、****#
B、****##
C、***#
D、*#
E、****
3、下列程序段输出结果为:
intx=1,y=012;
printf(“%d”,y*x++);
A、10
B、12
C、20
D、24
4、下面程序段的输出结果是?
intk;
while(k!
=0)k=k-1;
printf(“%d”,k);
A、0
B、无论k的初值如何,最终都会减到0的。
C、因为k没有初值,所以结果不确定
D、1
E、因为没有给k赋初值,因此程序不能通过编译
5、以下表达式x1用在if的条件中时,和哪个是等价的:
A、x!
=0
B、x
C、x==0
D、x==1
E、x!
=1
6、以下哪个不是C语言的关键字?
A、include
B、if
C、while
D、int
E、for
7、对于以下代码:
unsignedshortsht=0;
sht--;
执行后,sht的值是?
A、65535
B、2的16次方-1
C、-1
D、32767
E、65536
8、以下哪个直接量是十进制的124?
A、0174
B、0x7C
C、124
D、0x124
E、0124
F、124d
9、对于以下代码:
inti=6;
if(i=6)printf("
hello\n"
;
elseprintf("
bye-bye\n"
哪句话是对的?
A、无法编译
B、不能通过编译
C、打印出"
hello"
D、打印出"
bye-bye"
E、打印出"
hellobye-bye"
10、在代码:
while(!
e)中,!
e等价于:
A、e==0
B、e!
=1
C、e!
D、e==1
11、下列可用于C语言程序标识符的一组是(名字间以逗号分隔):
A、For,_abc,IF
B、_if,_123,file
C、void,d,WORD
D、For,-abc,IF
E、2_a,xyz,b1_s
F、void,_2a,2a
12、对for(表达式1;
表达式3)可理解为
A、for(表达式1;
1;
表达式3)
B、for(表达式1;
true;
C、for(表达式1;
表达式1;
D、for(表达式1;
表达式3;
E、for(表达式1;
0;
13、对于以下代码:
inti,j=6;
以下哪句话是对的?
A、i不会被初始化,而j是6
B、i和j的初始值都是6
C、i被初始为0,而j是6
D、不能通过编译
14、对于以下代码:
charch=-1;
ch);
输出结果是?
A、-1
B、255
C、ASCII码表中255那个位置的字符
D、编译错误,因为赋值的时候类型不一致
E、编译错误,因为赋值的时候不能把负数赋给char
F、运行错误,因为%d和ch的类型不匹配
15、对于以下代码:
inti;
i);
i%=4;
执行后,i会有几种可能性?
A、7
B、0
C、1
D、2
E、3
F、不好说
16、对于以下代码:
do{printf("
i--);
}while(0);
A、打印出6
B、打印出5
C、因为while(0),无法编译
D、打印不出东西
17、对于以下代码:
for(i=0;
i++)printf("
for循环结束后,i的值是多少?
B、9
C、11
D、i没有确定的值
E、i不存在
18、以下哪个for语句是错误的?
A、for(i=0;
j=0;
i++);
B、for(i=0;
i10);
C、for(i=0;
D、for(;
E、for(i=0;
i--);
F、for(i=0;
i10,j10;
i++);
G、for(inti=0;
19、表达式ch=‘B’+‘8’-‘3’表示的字符是:
20、以下代码的输出是_____.intx=0,y=0,z=0;
z=(x==1)(y=2);
y);
21、以下代码段的结果是:
inti=10;
longlongt=sizeof(i++);
22、表达式(double)(10/4*4)的结果是_____
23、以下代码的输出是:
inti,x,y;
i=x=y=0;
do{++i;
if(i%2)x+=i,i++;
y+=i++;
}while(i=7);
%d%d%d"
i,x,y);
第6周编程练习
1、高精度小数
第7周:
数组运算
1数组运算随堂测验
1、若有定义:
inta;
则以下选项中不越界的正确的访问有:
A、a
B、a
C、a
D、a
2、以下程序片段的输出结果是:
intm={1,4,7,2,5,8,3,6,9,};
inti,j,k=2;
i3;
i++){printf("
m);
A、369
C、789
D、能编译,但是运行时数组下标越界了
3、假设int类型变量占用4个字节,定义数组intx={0,2,4};
则x在内存中占据几个字节?
4、若有:
inta={{0},{1},{2}};
则a的值是?
第7周编程练习
1、多项式加法
2、鞍点
第8周:
指针与字符串
1指针随堂测验
1、对于:
inta={5,15,34,54,14,2,52,72};
int*p=a;
则:
p的值是?
A、编译出错,因为数组下标越界了
B、运行出错,因为数组下标越界了
C、54
2、如果:
inta=;
则以下哪些表达式的结果为真?
A、p==a
B、p==a
C、*p==a
D、p==a
3、以下变量定义:
int*p,q;
中,p和q都是指针。
4、对于:
第8周编程练习
1、单词长度
2、GPS数据处理
期末考试
期末试卷
1、以下哪个表达式表示“当x的取值在的范围内,结果为真,否则为假”
A、x=-10x=0
B、x=0x=-10
C、!
(x-10||x0)
D、-10=x=0
E、-10x0
F、xin
2、若变量已正确定义,执行scanf("
%d%c%f"
op1,op,op2);
输入什么之后,op1的值为1,op的值为’*’,op2的值为2.0.
A、1*2
B、1*2
C、1*2.0
D、1*2.
E、1*2.
F、1*2
G、1*2.0
H、1*2.
I、1*2
J、1*2.0
K、1*2.
3、下面的这个循环的循环次数是for(inti=0,j=10;
i=j=10;
i++,j--);
A、无限次
B、编译错误
C、10次
D、1次
4、以下哪句不能编译?
A、if(a==b)elseprintf("
no"
B、if(a==b);
C、if(a==b){}elseprintf("
);
D、if(a==b)printf("
5、循环语句while(!
x!
y)中的循环条件表达式等价于
A、!
(x||y)
B、!
(x!
=0||y!
=0)
C、x=0y=0
D、!
(x==0||y==0)
E、!
(x==0y==0)
6、以下哪个循环并非重复5次?
A、inti;
for(i=0;
i++){}
B、inti;
i5;
C、inti;
for(i=1;
D、inti;
i6;
7、对于intx,y;
语句if(x0)y=-1;
elseif(!
x)y=0;
elsey=1;
等价于
A、y=0;
if(x!
=0)if(x0)y=1;
elsey=-1;
B、if(x=0)y=0;
if(x)y=1;
C、y=0;
if(x=0)if(x)y=1;
D、if(x!
=0)if(x0)y=1;
elsey=-1;
8、对于以下代码:
B、通不过编译
C、打印出5
9、要求函数的功能是交换x和y中的值,且通过正确调用返回交换结果。
能正确实现此功能的函数是
A、voidfuna(int*x,int*y){*x=*x+*y;
*y=*x-*y;
*x=*x-*y;
B、voidfuna(int*x,int*y){intt=*x;
*x=*y;
*y=t;
C、voidfuna(int*x,int*y){int*p;
*p=*x;
*x=*y;
*y=*p;
D、voidfuna(intx,inty){intt;
t=x;
x=y;
y=t;
E、intfuna(int*x,int*y){*x=*y;
*y=*x;
10、语句while(x%3)a++;
中的表达式x%3等价于_______.
A、x%3!
B、x%3==0
C、x%3==1
D、x%3==2
11、下列数组定义,不正确的是_______.
A、intx={1,2,4,6};
B、inta;
C、intx={1,2,3,4};
D、intm={1,2,3,4,5,6};
表达式3)可理解为_______.
%hhd\n"
C、65535
D、32768
E、因为类型不匹配导致运行时刻错误
F、因为类型不匹配导致编译错误
14、以下哪句不是正确的函数原型?
A、intf(inti){};
B、intf(i);
C、intf();
D、intf(int);
E、intf(inti);
F、intf(void);
15、给定以下原型:
voidf(doubledd);
和如下变量定义:
doublea;
哪个函数调用是不能被编译的?
A、f(a);
B、f(1.0);
C、f
(1);
D、f(1u);
E、f(1.0f);
F、f(a);
G、f(sizeof(a));
16、以下哪个不是C语言的关键字?
A、define
B、main
C、then
D、printf
E、scanf
F、goto
G、if
H、typedef
I、struct
J、while
K、do
L、auto
M、else
N、switch
O、case
P、return
inti;
for循环后,i的值是多少?
D、没有确定的值
E、i不再存在了
18、以下哪个for语句是不能编译的?
B、for(i=0,j=0;
i++;
j++);
C、for();
E、for(i=0;
j10;
G、for(i=0;
19、假设字符变量ch中存放有大写英文字母,将其转换为相应的小写英文字母的表达式是
A、ch=ch+32
B、ch+=32
C、ch=ch+'
a'
-'
D、ch+='
E、ch=tolower(ch)
F、ch=ch-'
+'
G、ch-='
H、toupper(ch)
I、tolower(ch)
J、ch=ch-32
K、ch-=32
L、ch=ch-'
M、ch-='
20、有以下定义:
doublea,b,c;
则以下哪个表达式与a/b/c不等价?
A、a/(b/c)
B、(a/b)/c
C、a/(b*c)
D、a/c/b
21、以下哪个循环能编译?
A、for(i=10;
){}
B、for(i=10;
i100){}
C、for(i=10;
i++){}
D、for(i=10,i100,i++){}
22、有函数原型为voidf(int,int*);
,主函数中有变量定义:
inta=2,*p=a;
则下列函数调用正确的是
A、f(*p,a);
B、f(a,p);
C、f(*p,p);
D、f(a,a);
E、f(a,*p);
F、f(a,p);
G、f(*p,a);
H、f(p,a);
23、以下哪个是无效的C语言变量名?
A、4ever
B、int
C、struct
D、main
E、printf
F、_a
24、以下哪个函数是不能编译的?
A、voidf(inti){returni;
B、intf(){}
C、intf(){return0;
D、voidf(){}
E、intf(void){return0;
25、给定函数原型如下:
int*f(int*p);
而另有变量定义如下:
哪个对函数的调用是错误的?
A、f((i+6));
B、f(i);
C、*f(i)=6;
D、int*p=f(i);
26、对于以下代码:
C、未定义的输出
D、编译错误
E、运行时刻异常
27、对于以下代码:
voidf(){inti,j=6;
}以下哪句话是对的?
28、对于以下代码:
A、通不过编译
B、打印出"
29、语句if(4/53/4)a=1;
elsea=0;
运行后,a的值是
30、表达式!
!
"
2010-01-27"
的值为(以1表示真,0表示假)
31、现有intx=0,y=4;
则表达式-10xy0的结果是
32、表达式(double)(10/4*4)的结果是:
(如果认为结果是浮点数,请以小数点后一位小数来表示)
33、若有intx=5;
则!
x10的结果(以整数表达)是
34、若变量已正确定义并赋值,则表达式(-10x0)的值为
35、表达式(double)(10/4