C语言练习题汇总.docx
- 文档编号:6238409
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:27
- 大小:22.25KB
C语言练习题汇总.docx
《C语言练习题汇总.docx》由会员分享,可在线阅读,更多相关《C语言练习题汇总.docx(27页珍藏版)》请在冰豆网上搜索。
C语言练习题汇总
一、判断
变量根据其作用域的范围可以分作局部变量和全局变量.答案:
Y
C语言的switch语句中case后只能为整型或字符型常量或常量表达式答案:
Y
while和do…while循环不论什么条件下它们的结果都是相同的.答案:
N
逻辑表达式-5&&!
8的值为1.答案:
N
循环结构中的continue语句是使整个循环终止执行答案:
N
若有说明intc;则while(c=getchar());是正确的C语句。
答案:
Y
表达式(j=3,j++)的值是4.答案:
N
C语言中"%"运算符的运算对象必须是整型.答案:
Y
在C程序中,函数既可以嵌套定义,也可以嵌套调用.答案:
N
inti=20;
switch(i/10)
{
case2:
printf("A");
case1:
printf("B");
}
的输出结果为A。
答案:
N
两个字符串中的字符个数不相同时也可进行字符串大小的比较答案:
Y
char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。
答案:
N
如果有一个字符串,其中第十个字符为'\n',则此字符串的有效字符为9个。
答案:
N
如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。
答案:
Y
C语言中只能逐个引用数组元素而不能一次引用整个数组。
答案:
Y
inta[3][4]={{1},{5},{9}};它的作用是将数组各行第一列的元素赋初值,其余元素值为0。
答案:
Y
C语言的函数可以嵌套定义.答案:
N
函数strlen("ASDFG\n")的值是7。
答案:
N
二、单项选择
1、若有说明:
inta[3][4]={0};则下面正确的叙述是()。
A:
只有元素a[0][0]可得到初值0
B:
此说明语句不正确
C:
数组a中各元素都可得到初值,但其值不一定为0
D:
数组a中每个元素均可得到初值0
答案:
D
2、若有下列定义,则对a数组元素a[2]地址的正确引用是()。
inta[5],*p=a;
A:
*(p+5)
B:
*p+2
C:
*(a+2)
D:
*&a[5]
答案:
C
3、为表示关系x≥y≥z,应使用C语言表达式
A:
(x>=y)&&(y>=z)
B:
(x>=y)AND(y>=z)
C:
(x>=y>=z)
D:
(x>=z)&(y>=z)
答案:
A
4、设有说明:
charc;intx;doublez;则表达式c*x+z值的数据类型为
A:
float
B:
int
C:
char
D:
double
答案:
D
5、能正确表示逻辑关系:
"a≥10或a≤0"的C语言表达式是
A:
a>=10ora<=0
B:
a>=0|a<=10
C:
a>=10&&a<=0
D:
a>=10||a<=0
答案:
D
6、已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中
不正确的是()。
A:
p=&j,p=p1;
B:
p=a;
C:
p=&a[j];
D:
p=10;
答案:
D(指针不能指向数字,只能指向地址,并且地址为随机获取)
7、C语言的if语句嵌套时,if与else的配对关系是()。
A:
每个else总是与它上面的最近的if配对
B:
每个else总是与最外层的if配对
C:
每个else与if的配对是任意的
D:
每个else总是与它上面的if配对
答案:
A
8、已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!
y)的值是()。
A:
0
B:
语法错
C:
1
D:
"假"
答案:
C
9、如果inta=2,b=3,c=0,下列描述正确的是
A:
a>b!
=c和a>(b!
=c)的执行顺序是一样的
B:
!
a!
=(b!
=c)表达式的值为1
C:
a||(b=c)执行后b的值为0
D:
a&&b>c的结果为假
答案:
B
10、C语言规定,在一个源程序中,main函数的位置()。
A:
必须在最开始
B:
必须在系统调用的库函数的后面
C:
可以任意
D:
必须在最后
答案:
C
11、下列字符序列中,不可用作C语言标识符的是()。
A:
b70
B:
#ab
C:
symbol
D:
a_1
答案:
B(标识符只能包含字母、数字、下划线,且数字不能放首位)
12、在C语言中,能代表逻辑值“真”的是()。
A:
True
B:
大于0的数
C:
非0整数
D:
非0的数
答案:
D
13、任何一个C语言的可执行程序都是从____开始执行的.
A:
程序中的第一个函数
B:
main()函数的入口处
C:
程序中的第一条语句
D:
编译预处理语句
答案:
B
14、下列语句中,不正确的是()。
A:
chara[2]={1,2};
B:
inta[2]={'1','2'};
C:
chara[2]={'1','2','3'};
D:
chara[2]={'1'};
答案:
C
15、若有说明:
int*p1,*p2,m=5,n;以下均是正确赋值语句的选项是()。
A:
p1=&m;p2=&p1
B:
p1=&m;p2=&n;*p1=*p2;
C:
p1=&m;p2=p1;
D:
p1=&m;*p2=*p1;
答案:
C
16、在C语言中,调用函数除函数名外,还必须有()。
A:
函数预说明
B:
实际参数
C:
()
D:
函数返回值
答案:
C
17、以下叙述中正确的是()。
A:
C程序中注释部分可以出现在程序中任意合适的地方
B:
花括号“{“和”}”只能作为函数体的定界符
C:
构成C程序的基本单位是函数,所有函数名都可以由用户命名
D:
分号是C语句之间的分隔符,不是语句的一部分
答案:
A
18、变量p为指针变量,若p=&a,下列说法不正确的是()。
A:
&*p==&a
B:
*&a==a
C:
(*p)++==a++
D:
*(p++)==a++
答案:
D
19、inta=3,b=2,c=1;
if(a>b>c)a=b;
elsea=c;
则a的值为()。
A:
3
B:
2
C:
1
D:
0
答案:
C
20、在以下给出的表达式中,与do--while(E)语句中的(E)不等价的
表达式是()。
A:
(!
E==0)
B:
(E>0||E<0)
C:
(E==0)
D:
(E!
=0)
答案:
C
21、若用数组名作为函数的实参,传递给形参的是()。
A:
数组的首地址
B:
数组第一个元素的值
C:
数组中全部元素的值
D:
数组元素的个数
答案:
A
22、putchar函数可以向终端输出一个()。
A:
整型变量表达式值
B:
实型变量值
C:
字符串
D:
字符或字符型变量值
答案:
D
三、程序填空共2题(共计25分)
第1题
功能:
从键盘上输入一个正整数,判断其是否是回文数。
说明:
所谓回文数是指顺序读与反序读都是一样的数,如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;
}
答案:
=======(答案1)=======
a[i]=r
=======(答案2)=======
continue或flag=1
=======(答案3)=======
flag或flag!
=0或flag==1
=========或=========
i
第2题
功能:
用冒泡排序法对数组a进行由小到大的排序。
#include
voidfun(inta[],intn)
{
inti,j,t;
/***********SPACE***********/
for(j=0;【?
】;j++)
/***********SPACE***********/
for(i=0;【?
】;i++)
/***********SPACE***********/
if(【?
】)
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
intmain()
{
inti,a[10]={3,7,5,1,2,8,6,4,10,9};
/***********SPACE***********/
【?
】;
for(i=0;i<10;i++)
printf("%3d",a[i]);
return0;
}
答案:
=======(答案1)=======
j<=n-1或j =======(答案2)======= i =======(答案3)======= a[i]>a[i+1] =======(答案4)======= fun(a,10) 第3题(10.0分)题号: 76 功能: 找出数组中最大值和此元素的下标,数组元素的值由键盘 输入。 #include voidmain() { inta[10],*p,*s,i; for(i=0;i<10;i++) /***********SPACE***********/ scanf("%d",【? 】); /***********SPACE***********/ for(p=a,s=a;【? 】<10;p++) /***********SPACE***********/ if(*p【? 】*s)s=p; /***********SPACE***********/ printf("max=%d,index=%d\n",【? 】,s-a); } 答案: =======(答案1)======= a+i或&a[i] =======(答案2)======= p-a =======(答案3)======= > =======(答案4)======= *s 第4题(15.0分)题号: 27 功能: 输出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; } 答案: =======(答案1)======= k=0 =======(答案2)======= n%10或n-n/10*10 =======(答案3)======= while(n>0)或while(n! =0)或while(n) =======(答案4)======= printf("\n")或puts("\n")或putchar('\n') 第5题 功能: 用函数调用方式,实现字符串的复制。 #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; } 答案: =======(答案1)======= str_to+i =======(答案2)======= string_copy =======(答案3)======= printf 第6题 功能: 以下程序是用选择法对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)