C语言期末习题整理带答案.docx
- 文档编号:4279523
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:60
- 大小:38.82KB
C语言期末习题整理带答案.docx
《C语言期末习题整理带答案.docx》由会员分享,可在线阅读,更多相关《C语言期末习题整理带答案.docx(60页珍藏版)》请在冰豆网上搜索。
C语言期末习题整理带答案
目录
考点:
简单C语言程序的构成和格式2
考点:
常量、变量和标识符3
考点:
整形数据4
考点:
实型数据5
考点:
字符串5
考点:
字符型常量5
考点:
赋值语句6
考点:
赋值表达式7
考点:
算数表达式8
考点:
自加、自减运算符和逗号运算符9
考点:
数据输出10
考点:
条件表达式构成的选择结构13
考点:
if语句和用if语句构成的选择结构13
考点:
关系运算和逻辑运算14
考点:
switch语句以及用switch语句和break语句构成的选择结构15
考点:
while语句和while语句构成的循环17
考点:
do-while语句和do-while语句构成的循环结构18
考点:
for语句和用for语句构成的循环结构19
考点:
for循环嵌套20
考点:
循环结构的嵌套21
考点:
一维数组的定义和一维数组元素的引用22
考点:
二维数组的定义和二维数组元素的引用23
考点:
全局变量及其作用域和生存期,全局变量及其作用域和生存期25
考点:
调用函数和被调用函数之间的数据传递27
考点:
函数的定义和返回值29
考点:
指针31
考点:
程序分析32
考点:
简单C语言程序的构成和格式
1.在一个C程序中______。
A、main函数必须出现在所有函数之前
B、main函数可以在任何地方出现
C、main函数必须出现在所有函数之后
D、main函数必须出现在固定位置
2.以下关于函数的叙述中正确的是______。
A、C语言程序将从源程序中第一个函数开始执行
B、可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行
C、C语言规定必须用main作为主函数名,程序将从此开始执行,在此结束
D、main可作为用户标识符,用以定义任意一个函数
2.以下说法中正确的是______。
A、#define和printf都是C语句
B、#define是C语句,而printf不是
C、printf是C语句,但#define不是
D、#define和printf都不是C语句
3.若k是int型变量,且有下面的程序片段,程序片段的输出结果是______。
k=-3
if(k<=0)printf("####")
elseprintf("&&&&");
A、####B、&&&&C、####&&&&
D、有语法错误,无输出结果
4.以下4个选项中,不能看作一条语句的是______。
A、{;}B、a=0,b=0,c=0;
C、if(a>0);D、if(b==0)m=1;n=2;
5.有以下程序
main()
{
inta=0,b=0;
a=10;/*给a赋值*/
b=20;/*给b赋值*/
printf("a+b=%d\n",a+b);
}
程序运行后的输出结果是______。
A、a+b=10B、a+b=30C、30D、出错
6.以下叙述中正确的是______。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号“{”和“}”只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
D、分号是C语言之间的分隔符,不是语句的一部分
7.以下叙述中错误的是______。
A、C语句必须以分号结束
B、复合语句在语法上被看作一条语句
C、空语句出现在任何位置都不会影响程序运行
D、赋值表达式末尾加分号就构成赋值语句
3.以下关于函数的叙述中不正确的是______。
A、C程序是函数的集合,包括标准库函数和用户自定义函数
B、在C语言程序中,被调用的函数必须在main函数中定义
C、在C语言程序中,函数的定义不能嵌套
D、在C语言程序中,函数的调用可以嵌套
考点:
常量、变量和标识符
8.下列定义变量的语句中错误的是______。
A、int_intB、doubleint_
C、charForD、floatUS$
9.以下不合法的用户标识符是______。
A、j2_KEYB、Double
C、4dD、_8_
10.以下4组用户定义标识符中,全部合法的一组是______。
A、_mainencludesinB、If-maxturbo
C、txtREAL3COMD、intk_2_001
11.以下定义语句中正确的是______。
A、chara='A'b='B';
B、floata=b=10.0;
C、inta=10,*b=&a;
D、float*a,b=&a;
12.以下不能定义为用户标识符的是______。
A、scanfB、Void
C、_3com_D、int
13.以下有4组用户标识符,其中合法的一组是______。
A、For-subCaseB、4dDOSize
C、f2_G3IFabcD、WORDVoiddefine
14.C语言中最简单的数据类型包括______。
A、整型、实型、逻辑型
B、整型、实型、字符型
C、整型、字符型、逻辑型
D、整型、实型、逻辑型、字符型
15.下列选项中,合法的C语言关键字是______。
A、VARB、cher
C、integerD、default
16.以下不能定义为用户标识符的是______。
A、MainB、_0
C、_intD、sizeof
17.下列叙述中正确的是______。
A、C语言中既有逻辑类型也有集合类型
B、C语言中没有逻辑类型但有集合类型
C、C语言中有逻辑类型但没有集合类型
D、C语言中既没有逻辑类型也没有集合类型
考点:
整形数据
18.若有以下定义和语句:
intu=010,v=0x10,w=10;
printf("%d,%d,%d\n",u,v,w);
则输出结果是:
______。
A、8,16,10B、10,10,10
C、8,8,10D、8,10,10
19.在C语言中,不正确的int类型的常数是______。
A、32768B、0C、037D、0xAF
20.以下程序的输出结果是______。
main()
{
intk=17;
printf("%d,%o,%x\n",k,k,k);
}
A、17,021,0x11B、17,17,17
C、17,0x11,021D、17,21,11
21.在C语言中,合法的长整型常数是______。
A、0LB、4962710
C、324562&D、216D
22.C语言中运算对象必须是整型的运算符是______。
A、%=B、/C、=D、<=
23.以下选项中不属于C语言的类型名称是______。
A、signedshortint
B、unsignedlongint
C、unsignedint
D、longshort
24.有以下程序
main()
{
intm=0256,n=256;
printf("%o%o\n",m,n);
}
程序运行后的输出结果是______。
A、02560400B、0256256
C、256400D、400400
考点:
实型数据
25.以下选项中,不能作为合法常量的是______。
A、1.234e04B、1.234e0.4
C、1.234e+4D、1.234e0
26.以下符合C语言语法的实型常量是______。
A、1.2E0.5B、3.14159E
C、.5E-3D、E15
考点:
字符串
27.若有定义和语句:
chars[10]:
s="abcd";printf("%s\n",s);
则结果是(以下u代表空格)______。
A、输出abcdB、输出a
C、输出abcduuuuuD、编译不通过
28.函数调用:
strcat(strcpy(str1,str2),str3)的功能是______。
A、将串str1复制到串str2中后再连接到串str3之后
B、将串str1连接到串str2之后再复制到串str3之后
C、将串str2复制到串str1中后再将串str3连接到串str1之后
D、将串str2连接到串str1之后再将串str1复制到串str3中
29.以下正确定义字符串的语句是______。
A、charstr[]={'\064'};B、charstr="\x43";
C、charstr='';D、charstr[]="\0";
30.有以下程序
main()
{
chars[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是______。
A、赋初值的字符串有错B、6,7
C、5,6D、6,6
考点:
字符型常量
31.若有以下定义和语句
charc1='b',c2='e';
printf("%d,%c\n",c2-c1,c2-'a'+'A');
则输出结果是:
______。
A、2,MB、3,EC、2,E
D、输出项与对应的格式控制不一致,输出结果不确定
32.已定义c为字符型变量,则下列语句中正确的是______。
A、c='97';B、c="97";
C、c=97;D、c="a";
33.数字字符0的ASCII值为48,若有以下程序______。
main()
{
chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}
程序运行后的输出结果是
A、3,2B、50,2
C、2,2D、2,50
34.以下程序的输出结果是______。
main()
{charc='z';
printf("%c",c-25);
}
A、aB、ZC、z-25D、y
35.若变量a是int类型,并执行了语句:
a='A'+1.6;,则正确的叙述是______。
A、a的值是字符CB、a的值是浮点型
C、不允许字符型和浮点型相加D、a的值是字符'A'的ASCII值加上1
36.下列程序执行后的输出结果是______。
main()
{
intx='f';
printf("%c\n",'A'+(x-'a'+1));
}
A、GB、HC、ID、J
37.以下程序的输出结果是______。
main()
{inti;
for(i='A';i<'I';i++,i++)printf("%c",i+32);
printf("\n");
}
A、编译不通过,无输出B、aceg
C、acegiD、abcdefghi
38.有如下程序
#include
main()
{
printf("%d\n",NULL);
}
程序运行后的输出结果是______。
A、0B、1C、-1
D、NULL没定义,出错
39.设有说明语句:
chara='\72';则变量a______。
A、包含1个字符B、包含2个字符
C、包含3个字符D、说明不合法
考点:
赋值语句
40.以下能正确计算定义且赋初值的语句是______。
A、intn1=n2=10;B、charc=32;
C、fioatf=f+1.1;D、doublex=12.3E2.5
41.以下合法的赋值语句是______。
A、x=y=100B、d--;
C、x+y;D、c=int(a+b);
42.下列语句中符合C语言语法的赋值语句是______。
A、a=7+b+c=a+7;B、a=7+b++=a+7;
C、a=7+b,b++,a+7D、a=7+b,c=a+7;
43.请选出合法的C语言赋值语句______。
A、a=b=58B、i++;
C、a=58,b=58D、k=int(a+b);
考点:
赋值表达式
44.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。
A、c=b=a;B、(a=c)‖(b=c);
C、(a=c)&&(b=c);D、a=c=b;
45.以下选项中非法的表达式是______。
A、0<=x<100B、i=j==0
C、(char)(65+3)D、x+1=x+1
46.以下程序的输出结果是______。
#include
main()
{
inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);}
A、6,1B、2,1
C、6,0D、2,0
47.以下循环体的执行次数是______。
main()
{
inti,j;
for(i=0,j=1;i<=j+1;i+=2,j--)
printf("%d\n",i);
}
A、3B、2C、1D、0
48.有以下定义语句
doublea,b;intw;longc;
若各变量已正确赋值,则下列选项中正确的表达式是______。
A、a=a+b=b++B、w%((int)a+b)
C、(c+w)%(int)aD、w=a=b;
49.有如下程序
main()
{
inta;charc=10;
floatf=100.0;doublex;
a=f/=c*=(x=6.5);
printf("%d%d%3.1f%3.1f\n",a,c,f,x);
}
程序运行后输出结果是______。
A、16516.5
B、1651.56.5
C、1651.06.5
D、2651.56.5
50.若变量a、i已正确定义,且i已正确赋值,合法的语句是______。
A、a==1B、++i;
C、a=a++=5;D、a=int(i);
51.若变量已正确定义并赋值,下面符合C语言语法的表达式是______。
A、a:
=b+1B、a=b=c+2
C、int18.5%3D、a=a+7=c+b
52.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是______。
A、x=x*100+0.5/100.0
B、x=(x*100+0.5)/100.0
C、x=(int)(x*100+0.5)/100.0
D、x=(x/100+0.5)*100.0
53.当把以下四个表达式用作if语句的控制表达式时,有一个选项含义不同,这个选项是______。
A、K%2B、K%2==1
C、(K%2)!
=0D、!
K%2==1
考点:
算数表达式
54.若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是______。
A、++x,y=x--B、x+1=y
C、x=x+10=x+yD、double(x)/10
55.表达式3.6-5/2+1.2+5%2的值是______。
A、4.3B、4.8
C、3.3D、3.8
56.设inta=12,则执行完语句a+=a-=a*a后,a的值是______。
A、552B、264
C、144D、-264
57.以下变量x、y、z均为double类型且已正确赋值,不能正确表示数字式子x/(y*z)的C语言表达式是______。
A、x/y*zB、x*(1/(y*z))
C、x/y*1/zD、x/y/z
58.若有定义:
inta=8,b=5,c;,执行语句c=a/b+0.4;后,c的值是______。
A、1.4B、1C、2.0D、2
59.设有定义:
floata=2,b=4,h=3;,以下C语言表达式与代数式1/2((a+b)h)计算结果不相符的是______。
A、(a+b)*h/2B、(1/2)*(a+b)*h
C、(a+b)*h*1/2D、h/2*(a+b)
60.假定x和y为double型,表达式x=2,y=x+3/2的值是______。
A、3.500000B、3
C、2.000000D、3.000000
61.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是______。
A、1B、2C、2.000000D、2.500000
62.若有以下程序段
intc1=1,c2=2,c3;
c3=1.0/c2*c1;
则执行后,c3中的值是______。
A、0B、0.5C、1D、2
63.设有intx=11;则表达式(x++*1/3)的值是______。
A、3B、4C、11D、12
64.下列程序的输出结果是______。
main()
{
doubled=3.2;intx,y;
x=1.2;y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
A、3B、3.2C、0D、3.07
考点:
自加、自减运算符和逗号运算符
65.若执下面程序时从键盘上输入5,
main()
{
intx;
scanf("%d",&x);
if(x++>5)printf("%d\n",x);
elseprintf("%d\n",x--);
}
则输出是______。
A、7B、6C、5D、4
66.有以下程序
main()
{
chara1='M',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是______。
A、程序输出大写字母MB、程序输出小写字母m
C、格式说明符不足,编译出错D、程序运行时产生出错信息
67.以下程序的输出结果是______。
main()
{
inta;
printf("%d\n",(a=3*5,a*4,a+5));
}
A、65B、20C、15D、10
68.设有如下程序段
intx=2002,y=2003;
printf("%d\n",(x,y));
则以下叙述中正确的是______。
A、输出语句中格式说明符的个数少于输出项的个数,不能正确输出
B、运行时产生错误信息
C、输出值为2002
D、输出值为2003
69.有以下程序
main()
{
intx,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}
程序运行后的输出结果是______。
A、2,3,3B、2,3,2C、2,3,1D、2,2,1
70.设有以下定义
inta=0;
doubleb=1.25;
charc='A';
#defined2
则下面语句中错误的是______。
A、a++;B、b++;C、c++;D、d++;
71.以下程序的输出结果是______。
main()
{
intx=10,y=10;
printf("%d%d\n",x--,--y);
}
A、1010B、99C、910D、109
72.若x和y都是int型变量,x=100、y=200,且有下面的程序片段
printf("%d",(x,y));
上面程序片段的输出结果是______。
A、200B、100C、100200
D、输则格式符不够,输出不确定的值
73.设有如下定义:
intx=10,y=3,z;
则语句
printf("%d\n",z=(x%y,x/y));
的输出结果是______。
A、1B、0C、4D、3
74.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是______。
main()
{
intx;
scanf("%d",&x);
if(x++>5)
printf("%d",x);
else
printf("%d\n",x--);
}
A、7和5B、6和3C、7和4D、6和4
75.若t为double类型,表达式t=1,t+5,t++的值是______。
A、1B、6.0C、2.0D、1.0
76.以下程序的输出结果是______。
#include
main()
{
inti=10,j=10;
printf("%d,%d\n",++i,j--);
}
A、11,10B、9,10C、010,9D、10,9
77.有以下程序
main()
{
inty=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是______。
A、y=0B、y=-1C、y=1D、while构成无限循环
考点:
数据输出
78.下面程序的输出是______。
main()
{intx=10,y=3;
printf("%d\n",y=x/y);
}
A、0B、1C、3D、不确定的值
79.已知字母A的ASCII码为十进制的65,下面程序的输出是______。
main()
{
charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);
}
A、67,DB、B,CC、C,DD、不确定的值
80.下列程序的运行结果是______。
#include
main()
{inta=2,c=5;
printf("a=%d,b=%d\n",a,c);
}
A、a=%2,b=%5B、a=2,b=5
C、a=d,b=dD、a=%d,b=5d
81.以下程序的输出结果是______。
#include
main()
{inta=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
A、a=%2,b=%5B、a=2,b=5
C、a=%%d,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 习题 整理 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)