引导语:C语言的难度,是相对于个人而言的,以下是小编整理的C语言自测试题,欢迎参考阅读!一、选择题:(20分,每题2分)1.以下不正确的C语言标识符是。A.ABCB.abc下面是小编为大家整理的2023C语言自测试题(完整文档),供大家参考。
引导语:C语言的难度,是相对于个人而言的,以下是小编整理的C语言自测试题,欢迎参考阅读!
一、选择题:(20分,每题2分)
1.以下不正确的C语言标识符是 。
A. ABC
B. abc
C. a_bc
D. ab.c
2.C程序是由 构成的。
A. 主程序与子程序
B. 主函数与若干子函数
C. 一个主函数与一个其它函数
D. 主函数与子函数
3.以下说法中正确的是:。
A. 在C语言中,实参与其对应的形参各占独立的存储单元;
B.在C语言中,实参与其对应的形参共占同一个存储单元;
C.在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;
D. 在C语言中,形参是虚拟的,不占存储单元。
4.设n=3;则n++的结果是 。
A. 2 B. 3 C. 4 D. 5
5.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是 。
A. 0B. 1 C. 2 D. 3
6.凡是函数中未指定存储类别的局部变量其隐含的存储类别是 。
A. 自动(auto)
B. 静态(static)
C. 外部(extern)
D. 寄存器(register)
7.在while(x)语句中的x与下面条件表达式等价的是: 。
A. x= =0B. x= =1
C. x!=1D. x!=0
8.若有以下说明和语句:
struct worker
int no;
char *name;
work, *p=&work;
则以下引用方法不正确的是 。
A. work.no
B. *p.no
C. p->no
D. work->no
9.以下对二维数组进行正确初始化的是 。
A. int a[2][3]=1,2,3,4,5,6;
B. int a[][3]=1,2,3,4,5,6;
C.int a[2][]=1,2,3,4,5,6;
D.int a[2][]=1,2,3,4;
10.二维数组a有m列,则在a[i][j]之前的元素个数为: 。
A. j*m+i
B. i*m+j
C. i*m+j-1
D. i*m+j+1
二、给出下列程序的运行结果:20分,前四题每题3分,后两题每题4分
1.
#include
main
int i=16,j,x=6;
j=i+++1;
x*=i=j;
printf“%d,%d”,j,x;
运行结果是:
2.
#include
#include
main
int a=1,b=4,c=2;
float x=10.5,y=4.0,z;
z=a+b/c+sqrtdoubley*1.2/c+x;
printf“%f”,z;
运行结果是:
3.
#include
main
int a,b,c,d;
a=c=0;
b=1;
d=20;
ifa d=d-10;
else if!b
if!c d=25;
else d=15;
printf“d=%d”,d;
运行结果是:
4.
main
int i=10;
switchi
case 9: i+=1;
case 10: i+=1;
case 11: i+=1;
default : i+=1;
printf“%d”,i;
运行结果是:
5.
#include
main
int a[]=1,2,3,4,i,j,s=0;
j=1;
fori=3;i>=0;i--
s=s+a[i]*j;
j=j*10;
printf"s=%d",s;
运行结果是:
6.
funcint x
x=20;
main
int x=10;
funcx;
printf“%d”,x;
运行结果是:
三、阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)
1.已知能被4整除而不能被100整除的或者能被400整除的年份是润年,则判断某一年是否是润年的程序如下:
main
int year,leap;
scanf"%d",&year;
if
leap=1;
else leap=0;
if printf"是润年";
else printf"不是润年";
2.将100至200间不能被3整除的数输出:
main
int n;
forn=100;n<=200;n++
ifn%3==0 ;
printf"%d ",n;
3.判断m是否是素数
#include
main
int m,i,k;
scanf"%d",&m; k=sqrtm;
fori=2;i<=k;i++
ifm%i==0 ;
ifi>=k+1 printf"%d is a primenumber",m;
else printf"%d is not a prime number",m;
4.给定一3*4的矩阵,求出其中值最大的元素的值,及所在的行列号。
main
int i,j,row=0,colum=0,max;
static int a[3][4]=1,2,3,49,8,7,610,-10,-4,4;
;
fori=0;i<=2;i++
forj=0;j<=3;j++
ifa[i][j]>max
max=a[i][j];
;
;
printf"max=%d,row=%d,colum=%d",max,row,colum;
5.下面函数的功能是将两个字符串s和t连接起来。
char *conjchar *s, char *t
char*p=s;
while*s;
while*t
*s=;
s++;
t++;
*s=’\0’;
;
四、编程(40分)
1.计算1-1/2+1/3-1/4+…+1/99-1/100+…,直到最后一项的绝对值小于10-4为止。(13分)
2.输入一行字符,分别统计求出其中英文字母、空格、数字和其他字符的个数并输出结果。(13分)
3.任意从键盘输入10个整数,按从小到大的顺序排序,并输出结果。(14分)