C语言练习题3.docx
- 文档编号:3461122
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:29
- 大小:24.88KB
C语言练习题3.docx
《C语言练习题3.docx》由会员分享,可在线阅读,更多相关《C语言练习题3.docx(29页珍藏版)》请在冰豆网上搜索。
C语言练习题3
C语言练习题
一、判断题
1.C语言的switch语句中case后可为字符和整型常量表达式或有确定值的变量及表达式。
(N)
2.如果有一个字符串,其中第十个字符为’\n’,则此字符串的有效字符为9个。
(N)
3.两个字符串中的字符个数不相同时也可以进行字符串大小的比较。
(Y)
4.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
(Y)
5.C语言的switch语句中的case后只能为整型或字符型常量或常量表达式。
(Y)
6.变量根据其作用域的范围可以分作局部变量和全局变量。
(Y)
7.循环结构中的continue语句是整个循环终止执行。
(N)
8.char*p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”.(N)
9.C语言中只能逐个引用数组元素而不能一次引用整个数组。
(Y)
10.inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
(Y)
11.C语言中“%”运算符的运算对象必须为整形。
(Y)
12.函数strlen(“ASDFG\n”)的值是7。
(N)
13.若有说明intc;则while(c=getchar());是正确的c语句。
(Y)
14.表达式,(j=3,j++)的值是4。
(N)
15.在c程序中,函数既可以嵌套定义,也可以嵌套调用。
(N)
16.Inti=20;
Switch(i/10)
{
Case2:
printf(“A”);
Case1:
printf(“B”);
}
的输出结果为A(N)
17.While和do…while循环无论在什么条件下它们结果都相同。
(N)
18.逻辑表达式-5&&!
8的值为1.(N)
19.逻辑表达式-5&&8的值为1.(Y)
二、单选题
1.若有说明:
inta[3][4]=0;则下面正确的叙述是(D)
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可以得到初值,但其值不一定是0
D.数组a中每个元素均可得到初值0
2.C语言规定,函数返回值的类型是由(D)
A.return语句中的表达式类型所决定
B.调用该函数时的主调函数类型所决定
C.调用该函数时系统临时决定
D.在定义该函数时所指定的函数类型所决定
3.若有下列定义,则对a数组元素A[2]地址的正确引用是(C)
A.*(P+5)B.*p+2C.*(a+2)D.*&a[5]
4.为表示关系x≥y≥z,应使用C语言表达式(A)
A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)
C.(x>=y>=z)D.(x>=z)&&(y>=z)
5.设有说明:
charc;intx;doublez;则表达式c*x+z值的数据类型为(D)
A.floatB.intC.charD.double
6.能正确表示逻辑关系:
“a≥10或a≤0”的C语言表达式是(D)
A.a>=10ora<=10B.a>=0|a<=10
C.a>=10&&a<=10D.a>=10||a<=0
7.已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是(D)
A.p=&j,p=p1B.p=aC.p=&a[j]D.p=10
8.C语言的if语句嵌套时,if与else的配对关系是(A)
A.每个else总是与它上面的最近的if配对
B.每个else总是与最外层的if配对
C.每个else与if的配对是任意的
D.每个else总是与它上面的if配对
9.已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!
y)的值是(C)
A.0B.语法错C.1D.“假”
10.如果inta=2,b=3,c=0,下列描述正确的是(B)
A.a>=b!
=c和a>(b!
=c)的执行顺序是一样的
B.!
a!
=(b!
=c)表达式的值是1
C.a||(b=c)执行后b的值为0
D.a&&b>c的结果为假
11.若有说明:
int*p1,*p2,m=5,n;以下均是正确的赋值语句的选项是(C)
A.p1=&m;p2=&p1B.p1=&m;p2=&n;*p1=*p2;
C.p1=&m;p2=p1D.p1=&m;*p2=*p1
12.设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为(D)
A.floatB.intC.charD.double
13.C语言规定,在一个源程序中,main函数的位置(C)
A.必须在最开始B.必须在系统调用的库函数的后面
C.可以任意D.必须在最后
14.C语言的if语句嵌套时,if与else的配对关系是(A)
A.每个else总是与它上面的最近的if配对B.每个else总是与最外层的if配对
C.每个else与if的配对是任意的D.每个else总是与它上面的if配对
15.下列字符序列中,不可用做C语言标识符的是(B)
A.b70B.#abC.symbolD.a_1
16.整形变量x=1,y=3,经下列计算后,x的值不等于6的是(B)
A.x=(x=1+2,x*2)B.x=y>2?
6:
5C.x=9-(--y)-(y--)D.x=y*4/2
17.若有下列定义,则对a数组元素a[2]地址的正确引用是(C)
A.*(p+5)B.*p+2C.*(a+2)D.*&a[5]
18.在C语言中,能代表逻辑值“真”的是(D)
A.TrueB.大于0的数C.非0整数D.非0的数
19.任何一个C语言的可执行程序都是从(B)开始执行的,
A.程序中的第一个函数B.main()函数的入口处
C.程序中的第一条语句D.编译预处理语句
20.下列语句中,不正确的是(C)
A.chara[2]={1,2};B.inta[2]={‘1’,’2’};
C.chara[2]={‘1’,’2’,’3’};D.chara[2]={‘1’};
21.C语言中不可嵌套的是(B)
A.函数调用B.函数定义C.循环语句D.选择语句
22.若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是(C)
A.p1=&m;p2=&p1B.p1=&m;p2=&n;*p1=*p2
C.p1=&m;p2=p1D.p1=&m;*p2=*p1
23.在C语言中,调用函数除函数名以外,还必须有(C)
A.函数预说明B.实际参数
C.()D.函数返回值
24.以下不能对二维数组a进行正确初始化的语句是(C)
A.inta[2][3]={0};B.inta[][3]={{1,2},{0}};
C.inta[2][3]={{1,2},{3,4},{5,6}};D.inta[][3]={1,2,3,4,5,6};
25.C语言中while和do-while循环的主要区别是(B)
A.While的循环控制条件比do-while的循环控制条件严格
B.do-while的循环体至少无条件执行一次
C.do-while允许从外部转到循环体内
D.do-while循环体不能是复合语句
26.以下叙述正确的是(A)
A.C程序中注释部分可以出现在程序中任意合适地方
B.花括号“{“和”}”只能作为函数体的定界符
C.构成C程序的基本单位是函数,所有函数名都可以由用户命名
D.分号是C语言之间的分隔符,不是语句的一部分
27.变量的指针,其含义是指该变量的(B)
A.值B.地址C.名D.一个标志
28.若有说明:
inta[3][4]={0};则下面的叙述正确的是(D)
A.只有元素a[0][0]可得到初值0
B.此说明语句不正确
C.数组a中各元素都可得到初值,但其值不一定为0
D.数组a中各元素均可得到初值0
29.表达式18/4*sqrt(4.0)/8的值的数据类型为(C)
A.intB.floatC.doubleD.不确定
30.以下标识符中,不能作为合法的C用户定义标识符的是(C)
A.AnswerB.ToC.SignedD.if
31.变量p为指针变量,若p=&a,下列说法不正确的是(D)
A.&*p==&aB.*&a==aC.(*p)++==a++D.*(p++)==a++
32.inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为(C)。
A.3B.2C.1D.0
33.在以下给出的函数中,与do——while(E)语句中的(E)不等价的表达式是(C)。
A.(!
E==0)B.(E>0||E<0)C.(E==0)D.(E!
=0)
34.对以下说明语句inta[10]={6,7,8,9,10}的正确理解是(B)
A.将5个初值一次赋给a[1]至a[5]
B.将5个初值一次赋给a[0]至a[4]
C.将5个初值一次赋给a[6]至a[10]
D.因为数据组长度与初值的个数不同,数以此语句不正确
35.下列语句定义pf为指向float类型变量f的指针,(B)是正确的
A.floatf,*pf=fB.floatf,*pf=&f
C.float*pf=&f,fD.floatf,*pf
36.设和p1和p2是指向同一个字符串的指针变量,c为字符变量,则一下不能正确执行的赋值语句是(B)
A.c=*p1+*p2;B.p2=cC.p1=p2D.*p1*(*p2)
37.下列运算符中,不属于关系运算符的是(D)
A.
38.关于return语句,下列正确的说法是(C)
A.不能在主函数中出现且在其他函数中均可出现
B.必须在每个函数中出现
C.可以在同一个函数中出现多次
D.只能在除主函数之外的函数中出现一次
39.若用数组名作为函数的实参,传递给形参的是(A)
A.数组的首地址B.数组的第一个元素的值
C.数组中全部元素的值D.数组元素的个数
40.以下语句中,循环次数不为10次的语句是(A)
A.for(i=1;i<10;i++);B.i=1;do{i++;}while(i<=10);
C.i=10;while(i>0){--I;}D.i=1;m:
if(i<=10){i++;gotom;}
41.已知字符A的ASCLL代码值是65,字符变量c1的值是D,c2的值是D.执行语句printf(“%d,%d”,c1,c2-2);输出结果是(C)
A.A,BB.A,68C.65,66D.65,68
42.下列各M的值中,能使M%3==2&&M%5==3&&M%7==2为真的是(B)
A.8B.23C.17D.6
43.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为(C)
A.算术运算符,赋值运算符,关系运算符
B.关系运算符,赋值运算符,算术运算符
C.算术运算符,关系运算符,赋值运算符
D.关系运算符,算术运算符,赋值运算符
44.下列字符序列中,不可用作C语言标志符的是(B)
A.b70B.#abC.symbolD.a-1
45.putchar函数可以向终端输出一个(D)
A.整形变量表达式值B.实形变量值
C.字符串D.字符或字符型变量值
46.以下标志符中,在VC中不能作为合法的用户定义标志符的是(D)
A.ForB.PrintfC.WORDD.int
47.inta=1,b=2,c=3;If(a>b)a=b;If(a>c)a=c;则a的值为(A)
A.1B.2C.3D.不一定
48.在C语言程序中(C)
A.函数的定义可以嵌套。
但函数的调用不可以嵌套
B.函数的定义不可以嵌套。
但函数的调用可以嵌套
C.函数的定义和函数的调用均可以嵌套
D.函数的定义和函数的调用不可以嵌套
三、程序填空
《答题说明》
在“**********SPACE**********”语句的下一行完成程序填空,首先将填空标志【?
】删除,然后填入正确的答案,答题结束后,必须在程序环境中做好保存。
1.---------------------------------------------------------
功能:
已知一个数列,它的头两项分别是0和1,从第三项开始以
后的每项都是其前两项之和。
编程打印此数,直到某项的
值超过200为止。
-------------------------------------------------------*/
#include
intmain()
{
inti,f1=0,f2=1;
/***********SPACE***********/
for(【?
】;;i++)
{
printf("5%d",f1);
/***********SPACE***********/
if(f1>【?
】)break;
printf("5%d",f2);
if(f2>200)break;
if(i%2==0)printf("\n");
f1+=f2;
/***********SPACE***********/
f2+=【?
】;
}
printf("\n");
return0;
}
2./*-------------------------------------------------------
功能:
从键盘上输入一个正整数,判断其是否是回文数。
说明:
所谓回文数是指顺序读与反序读都是一样的数,如121、25852都是回文数。
将整数的各位依次存入数组a中,然后再进行判断
-------------------------------------------------------*/
#include
intmain()
{
intnum,a[10],r;
inti=0,j,flag=1;/*flag作为是否为回文的标志*/
scanf("%d",&num);
if(num<=0)return-1;
do
{
r=num%10;
/***********SPACE***********/
【?
】;
num=num/10;
i++;
}
while(num%10!
=0);
for(j=0,i--;i>=j;i--,j++)
if(a[j]==a[i])
/***********SPACE***********/
【?
】;
else
{
flag=0;
break;
}
/***********SPACE***********/
if(【?
】)
printf("是回文\n");
else
printf("不是回文\n");
return0;
}
3.---------------------------------------------------------
功能:
输出100到1000之间的各位数字之和能被15整除的所有数,
输出时每10个一行。
-------------------------------------------------------*/
#include
intmain()
{
intm,n,k,i=0;
for(m=100;m<=1000;m++)
{
/***********SPACE***********/
【?
】;
n=m;
do
{
/***********SPACE***********/
k=k+【?
】;
n=n/10;
}
/***********SPACE***********/
【?
】;
if(k%15==0)
{
printf("%5d",m);i++;
/***********SPACE***********/
if(i%10==0)【?
】;
}
}
return0;
}
4.---------------------------------------------------------
功能:
用函数调用方式,实现字符串的复制。
-------------------------------------------------------*/
#include
voidstring_copy(char*str_from,char*str_to)
{
inti=0;
/***********SPACE***********/
for(;(*(【?
】)=*(str_from+i))!
='\0';i++);
}
intmain()
{
staticchararray_str1[20]="iamateacher.";
chararray_str2[20];
/***********SPACE***********/
【?
】(array_str1,array_str2);
/***********SPACE***********/
【?
】("array_str2=%s\n",array_str2);
return0;
}
5.---------------------------------------------------------
功能:
以下程序是用选择法对10个整数按从小到大顺序排序。
说明:
每一趟均找到未排好序的数中的最小数的位置,然后将其交换到正确的位置
-------------------------------------------------------*/
#include
#defineN10
intmain()
{
inti,j,k,t,a[N];
for(i=0;i<=N-1;i++)
scanf("%d",&a[i]);/*输入10个整数*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 练习题
![提示](https://static.bdocx.com/images/bang_tan.gif)