C语言自测练习Word格式文档下载.docx
- 文档编号:16637673
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:22
- 大小:31.47KB
C语言自测练习Word格式文档下载.docx
《C语言自测练习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言自测练习Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
=y<
=zB.x<
=y,y<
=zC.x<
=y||y<
=zD.!
(x>
y)&
&
y<
=z
15.下面实型常量的错误形式是(D)。
【e前必须有数字,后必须是整数】
A.-253.000B.-253.C.0.253e3D.2.53e+3.5
16.已知inti=3,j;
j=++i;
则i和j的值分别为()。
A.i=3,j=4B.i=4,j=4C.i=4,j=3D.i=3,j=3
17.下列表达式的值为0的是(C)。
A.3%5B.3/5.0C.3/5D.3<
5
18.执行scanf(“%c%c”,&
语句使变量a、b分别为'
A'
和'
B'
,正确输入是(C)。
A.AB<
回车>
B.AB<
回车C.A,B<
D.A<
B<
19.C语言程序由函数组成,它的(B)。
A.主函数必须在其它函数之前,函数内可以嵌套定义函数
B.主函数可以在其它函数之后,函数内不可以嵌套定义函数
C.主函数必须在其它函数之前,函数内不可以嵌套定义函数
D.fopen(“D.主函数必须在其它函数之后,函数内可以嵌套定义函数
20.为程序输入数据,而打开文本文件file1,正确的函数调用是(A)。
解释(好好看完)
A.fopen(“file1”,“r”)B.fopen(“file1”,“w”)c.fopen(“file1”,“rb”)D.fopen(“file1”,“wb”)
21.已知intx=1;
表达式!
0)?
x+1:
x-1的结果为(C)。
A.1B.0C.2D.x<
22.ax2+bx+c的C语言表达式是(C)。
A.ax*x+bx+cB.a×
x×
x+b×
x+cC.a*x*x+b*x+cD.a·
x·
x+b·
x+c
23.循环for(i=1;
i<
=100;
i++){if(i>
10)break;
printf(“*”);
};
输出的*号个数是()。
A.100B.101C.10D.11
24.在调用函数时,实参和形参都是简单变量,它们之间的数据传递方式是(D)。
A.双向地址传递B.单向值传递C.由用户决定
D.由实参传递给形参,也可以由形参传递给实参
25.下面定义语句中错误的是(C)。
A.inta[]={1,2};
B.char*p=”CHINA”;
C.intn=5,a[n];
D.intx=’A’;
26.定义二维数组a[3][4]中,其中元素a[1][2]的地址为()。
A.aB.a[0]C.a[1]D.a[1]+2
27.有如下程序,其输出结果是(D)。
例题
#include<
stdio.h>
voidmain()
{intx=1,a=0,b=0;
switch(x){case0:
b++;
case1:
a++;
case2:
b++;
};
printf(“a=%d,b=%d\n”,a,b);
}
A.a=2,b=1B.a=1,b=1C.a=1,b=0D.a=2,b=2
28.下面对C语言正确的描述是()。
A.写程序时,大小写字母没有区别B.源程序经编译连接后,可生成可执行文件
C.每个语句和数据定义的最后可以没有分号
D.语言允许直接访问物理地址,可以进行位运算,它属于低级语言
29.下列选项中不是C语句的是()。
A.++tB.;
C.k=i=j;
D.{a/=b=1;
b=a%2;
30.以下程序的输出是()。
voidmain(){inta=9;
a+=a-=a+a;
printf(“%d”,a);
}
A.18B.9C.-18D.-9
31.设x和y均为int变量,语句组x+=y;
y=x-y;
x-=y;
的功能是(d)。
A.把x和y按从大到小排列B.把x和y按从小到大排列
C.无确定结果D.交换x和y中的值
32.以下程序的输出是(A)。
voidmain(){intm=7,n=4;
floata=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf(“%f\n”,x);
A.27.000000B.27.500000C.28.000000D.28.500000
33.在下列选项中,没有构成死循环的程序段是()。
A.inti=100;
while
(1){i=i%100+1;
if(i>
100)break;
}B.for(;
;
);
C.intk=0;
do{++k;
}while(k>
=0);
D.ints=36;
while(s);
--s;
34.以下while循环不断输出读入的字符,当读入回车换行符时结束循环。
正确的程序段是()。
A.while(ch=getchar()==’\N’B.while((ch=getchar())==’\n’
C.while((ch=getchar())!
=’\N’D.while((ch=getchar())!
=’\n’
35.若以下对fun的调用是正确的:
x=fun(fun(a,b,c),(a+b,a+c),a+b+c);
则fun函数的形参个数为()。
A.3B.4C.5D.6
36.以下叙述中正确的是()。
A.在函数中必须要有return语句B.函数中可以有多个return语句,但只执行其中的一个
C.return语句中必须要有一个表达式D.函数值并不总是通过return语句传回调用处
37.以下正确的定义语句是()。
A.intn=5,a[n][n];
B.inta[][3]={{1,2,},{3,4},{5,6}};
C.inta[][3];
D.inta[][]={{1,2,},{3,4},{5,6}};
38.在程序运行时某局部变量始终占据固定的存储单元,其存储类别应该是()。
A.autoB.registerC.staticD.extern
39.C语言规定,标识符的第一个字母必须是()。
A.字母B.数字C.下划线D.字母或下划线
40.下面不正确的字符常量是()。
A.“c”B.‘Y’C.‘w’D.‘9’
41.下面4组选项中,均是正确的八进制或十六进制的选项是()。
A.016B.0abcC.010D.0a12
0x8f017-0x117ff
0180xa0x16-123
42.下面程序段的输出结果是()。
inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf(“%d\n”,*(p+2));
A.3B.4C.1D.2
43.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是()。
A.floatB.intC.voidD.double
44.若二维数组a有m列,则在a[i][j]之前的元素个数为()。
A.j*m+iB.i*m+jC.j*m+i+1D.i*m+j+1
45.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是()。
A.“ab+”B.“wb+”C.“rb+”D.“ab”
46.若i,j已定义为int类型,则以下程序段中内循环体的总的执行次数是()。
for(i=5;
i;
i--)for(j=0;
j<
4;
j++){……}
A.20B.24C.25D.30
47.在以下一组运算符中,优先级别最高的是()。
A.<
=B.=C.%D.&
48.以下叙述中正确的是()。
A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数
C.main函数必须放在其他函数之前D.所有被调函数一定要在调用之前进行定义
49.以下程序运行市,若从键盘输入:
102030<
,输出的结果是()。
{inti=0,j=0,k=0;
scanf(“%d%*d%d”,&
i,&
j,&
k);
printf(“%d%d%d\n”,i,j,k);
A.102030B.10020C.10300D.103030
50.若执行以下程序时,从键盘上输入9<
,输出结果是()。
{intn;
scanf(“%d”,&
n);
if(n++<
10)printf(“%d\n”,n);
elseprintf(“%d\n”,n--);
A.11B.10C.9D.8
51.以下程序运行后的输出结果是()。
{inti=1,j=2,k=3;
if(i++==1&
(++j==3||k++=3))printf(“%d%d%d\n”,I,j,k);
A.123B.234C.223D.233
52.下面程序运行后的输出结果是()。
voidmain(){inta=5,b=4,c=6,d=0;
printf(“%d\n”,d=a>
b?
(a>
c?
a:
c):
(b));
A.5B.4C.6D.0
53.下面程序运行后的输出结果是()。
voidmain()
{intp[7]={11,13,14,15,16,17,18},i=0,k=0;
while(i<
7&
p[i]%2){k=k+p[i];
i++;
}printf(“%d\n”,k);
A.58B.56C.45D.24
54.以下能正确定义一维数组的是()。
A.inta[5]={0,1,2,3,4,5};
B.chara[]={0,1,2,3,4,5};
C.chara={‘A’,‘B’,‘C’};
D.inta[5]=”0123”;
55.已有定义:
intn=2,*p=&
n,*q=p;
以下非法的赋值语句是()。
A.p=q;
B.*p=*q;
C.n=*q;
D.p=n;
56.下面程序运行后的输出结果是()。
#definef(x)x*x
voidmain(){inti;
i=f(4+4)/f(2+2);
printf(“%d\n”,i);
A.28B.22C.16D.4
57.C语言中的简单数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、字符型、逻辑型D.整型、实型、字符型、逻辑型
58.已知inti=5;
执行语句i+=i;
后i的值是()。
A.10B.11C.12D.ABC答案都不对
59.C语言中下列运算符的操作数必须是int型的是()。
A.%B./C.-D.++
60.已知:
intx,y,z,w;
scanf(“%4d-%3d-%2d-%1d”,&
x,&
y,&
z,&
w);
printf(“%4d+%3d+%2d+%1d”,x,y,z,w);
若输出结果为:
1234+123+12+1,则正确的输入形式为()。
A.1234123121B.1234123121C.1234-123-12-1D.1234+123+12+1
61.执行语句:
printf(“Theprogram\’snameisc:
\\tools\book.txt”);
后输出为()。
A.Theprogram’snameisc:
tools\book.txtB.Theprogram’snameisc:
\tools\book.txt
C.Theprogram’snameisc:
\\tools\book.txtD.Theprogram’snameisc:
\toolook.txt
62.以下语句有语法错误的是()。
A.if(x>
y);
B.if(x!
=y)scanf(“%d”,x)elsescanf(“%d”,y);
C.if(x==y)x+=y;
D.if(x<
y){x++;
y++;
63.下列关于switch语句和break语句的结论中,正确的是()。
A.break语句是switch语句的一部分B.在switch语句中可以根据需要使用或不使用break语句;
C.在switch语句中必须使用break语句D.switch语句是break语句的一部分
64.若inti=10;
执行下列程序段后,变量i的正确结果是()。
switch(i){case9:
i+=1;
case10:
case11:
default:
A.10B.11C.12D.13
65.执行语句for(i=0;
i++<
3;
);
后变量i的值为()。
66.要说明一个有10个int型元素的数组,应当选择语句()。
A.inta[10];
B.inta[2,5];
C.inta[];
D.int*a[10];
67.已知:
inta[10];
则对a数组元素正确应用的是()。
A.a[10]B.a[2.5]C.a(5)D.a[10-10]
68.在C语言中,二维数组元素在内存中的存放顺序是()。
A.按行存放B.按列存放C.由用户自己定义D.由编译器决定
69.为了判断两字符串s1和s2是否相等,应当使用()。
A.if(s1==s2)B.if(s1=s2)C.if(strcpy(s1,s2))D.if(strcmp(s1,s2)==0)
70.一个C语言程序总是从()开始执行。
A.主过程B.主函数C.子程序D.主程序
71.C语言中函数()。
A.可以嵌套定义B.不可以嵌套调用
C.可以嵌套调用,但不能递归调用D.嵌套调用和递归调用均可
72.C语言中函数返回值得类型是由()决定的。
A.return语句中的表达式类型B.调用该函数的主调函数类型
C.调用函数时临时D.定义函数时所指定的函数类型
73.若int*p,a;
则语句p=&
中的运算符&
的含义是()。
A.位与运算B.逻辑与运算C.取指针运算D.取变量地址运算
74.已知:
charb[5],*p=b;
则正确的赋值语句是()。
A.b=“abcd”;
B.*b=“abcd”;
C.p=“abcd”;
D.*p=“abcd”;
75.设x、y均为整型变量,且x=10、y=3,则以下语句的输出结果是()。
printf(“%d,%d\n”,x--,--y);
A.10,3B.9,3C.9,2D.10,2
76.若有定义intx,y;
并已正确赋值,则以下选项中与表达式(x-y)?
(x++):
(y++)中的(x-y)等价的是()。
A.(x-y>
0)B.(x-y<
0)C.(x-y<
0||x-y>
0)D.(x-y==0)
77.以下程序的输出结果是()。
voidmain(){inta=3;
printf(“%d\n”,(a+=a-=a*a));
A.-6B.12C.0D.-12
78.若x是整型变量,表达式(x=10/4)的值是()。
A.2.5B.2.0C.3D.2
79.有以下程序,运行后的输出结果是()。
voidmain(){inta=0,b=0;
a=10;
b=20;
printf(“a+b=%d\n”,a+b);
A.a+b=10B.a+b=30C.30D.出错
80.以下非法的赋值语句是()。
A.n=(i=2,++i);
B.j++;
C.++(i+1);
D.x=j>
0;
81.设有数组定义:
chararray[]=“China”;
则数组array所占的空间为()。
A.4个字节B.5个字节C.6个字节D.7个字节
82.有以下程序,若运行时从键盘输入:
6,5,65,66<
,则输出结果是()。
voidmain(){chara,b,c,d;
scanf(“%c,%c,%d,%d”,&
b,&
c,&
d);
printf(“%c,%c,%c,%c\n”,a,b,c,d);
A.6,5,A,BB.6,5,65,66C.6,5,6,5D.6,5,6,6
83.程序段:
intn=1;
printf(“%d%d%d\n”,n,++n,n--);
的输出结果是()。
A.111B.122C.123D.121
84.在宏定义#definePI1.11596中,用宏名PI代替的是一个()。
A.单精度数B.双精度数C.常量D.字符串
85.在C语言程序中,在函数内部定义的变量称为()。
A.全局变量B.局部变量C.静态变量D.寄存器变量
86.在C语言中,合法的字符常量是()。
A.‘\084’B.‘0x43’C.‘ab’D.‘\0’
87.已知字母‘A’的ASCII码为十进制65,则程序段:
charch1,ch2;
ch1=‘A’+‘5’-‘3’;
ch2=‘A’+‘6’-‘3’;
printf(“%d,%c\n”,ch1,ch2);
A.67,DB.B,CC.C,DD.不确定的值
88.已知p为指针变量,a为数组名,i为整型变量,下列赋值语句不正确的是()。
A.p=&
B.p=a;
a[i];
D.p=10;
89.若要定义a为3×
4的二维数组,正确的定义语句是()。
A.floata(3,4);
B.floata[3][4];
C.floata3.4;
D.floata[3,4];
90.在下面语句中,其含义为“p为指向含n个元素的一维数组的指针变量”的是()。
A.intp[n]B.int*p()C.int*p(n)D.int(*p)[n]
二.填空题
1.一个良好的算法是由3种基本结构按照一定规律组成的,这3种基本结构是顺序结构、和循环结构。
2.函数strcmp返回的值等于零时,说明两个字符串。
3.设a=1,b=2,c=3,d=4,则表达式a<
b?
a:
c<
d?
d的结果是。
4.C语言程序在函数中结束程序的运行。
5.设a=2、b=3、c=4为整型变量,则执行语句a*=16+(b++)-(++c);
后a的值是。
6.在定义函数时,用类型加以说明,函数不返回值。
7.在函数内定义的变量称为。
8.设有定义charw;
intx;
floaty;
doublez;
并已赋确定的值,则表达式w*x+z-y的类型为。
9.C语言程序是由函数组成,程序的执行都是从开始的。
10.已知intb=2,a=3;
表达式a*=b,a+b的结果是。
11.结构化程序设计的三种基本结构是、、。
12.设i,j,k均为int型变量,则执行for(i=0,j=10;
=j;
i++,j--)k=i+j;
循环后k值为。
13.设有数据定义intk=4,*p=&
k;
则表达式p==&
k的值为。
14.函数调用时,实参和形参均为数组名,其传递方式为。
15.若ch已定义为字符型变量,且已赋值,判断ch中是否为字母的表达式为。
16.已知uniontype{inti;
double*p;
}temp;
则系统为temp分配的空间为字节。
17.若有定义和语句:
chars[12]=“abook!
”;
printf(“%d\n”,strlen(s));
则输出结果是。
18.设有变量定义:
inti;
floatf;
charname[50];
当执行语句scanf(“%2d%f%2s”,&
f,name);
时,输入字符55566777后,name的值是。
19.若有函数定义fun(doublea){returna*a*a;
},则函数返回值的类型是。
20.以下语句实现将整型变量a和b的值对调的功能:
;
a=b;
b=t;
21.若有语句chark,*p;
要将指针变量p指向字符型变量k,则C语句为。
22.有inta=3,b=4,c=5;
则表达式!
(a+b)+c-1&
b+c/2的值为。
23.若有函数max(a,b),为了使指针变量p指向函数max,则正确的赋值语句是。
24.若intx=5,n=5;
则表达式x+=n++后,x的值是。
25.假设m是一个3位数,从左到右用a、b、c表示各位的数字,则从左到右用各个数字是bac的3位数的表达式是。
26.数学表达式
对应的C语言表达式是。
27.若有定义doublea=5.5,b=2.5;
则表达式(int)a+b/b的值是。
28.若已将fp正确定义为文件指针变量,欲以“读”方式打开已存在的二进制文件“d1.dat”,请填写函数fopen的参数。
fp=fopen();
29.表达式3*7%2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 自测 练习