A(有答案)
一、填空题
1、请读程序段: unsigned a=16;
printf(\"%d,%d,%d\\n\",a>>2,a=a>>2,a);以上程序段的输出结果是_______。
2、在C语言中,输入操作是由库函数________完成的,输出操作是由库函数________完成的。
3、C语言源程序文件的后缀是 ;经过编译后,生成文件的后缀是 ;经过连接后,生成文件的后缀是
4、在C语言中,8作为双目运算符时表示的是_______,而作为单目运算符时表示的是_______。
5、C语言中的标识符可分为关键字、_______和_______3类。
6、函数process是一个可对两个整型数a和b进行计算的通用函数;函数max()可求这两个数中的较大者,函数min()可求它们中的较小者。已有调用语句process(a,b,max);和process(a,b,min);。请填空。
void process(_______) {int result; result=(*fun)(x,y); printf(\"%d\\n\ }
7、下面程序段的运行结果是_______。
x=2;
do{printf(\"*\");x--;)while(!x==0);
8、为建立如图10-5所示的存储结构(即每个结点两个域,data是数据域,next是指向结点的指针域),请将定义补充完整。
struct s{char data; _______ }node;
9、设有如下结构体说明:
struct ST {int a;float b; struct ST*c; doublex[3];
}st1;请填空,完成以下对数组s的定义,使其每个元素均为上述结构体类型。 _______
10、下面程序段的运行结果是_______。 int i=5;char c[6]=\"abcd\"; do{c[i]=c[i-1];}while(--i>0); puts(c);
二、选择题
11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为( )。
A.int B.float C.double D.不确定 12、以下不正确的叙述是( )。 A.在C程序中,逗号运算符的优先级最低 B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
13、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是( )
A.scanf(\"%d%lx,%le\",&x,&y,&z); B.scanf(\"%2d*%d%1f\",&x,&y,&z); C.scanf(\"%x%*d%o”,&x,&y); D.scanf(\"%x%0%6.2f\",&x,&y,&z); 14、以下针对scanf函数的叙述中,正确的是( )。 A.输入项可以为一实型常量,如scanf(\"%f\",3.5);
B.只有格式控制,没有输入项,也能进行正确输入,如scanf(\"a=%d,b=%d\"); C.当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\"%4.2f\",&f);
D.当输入数据时,必须指明变量的地址,如scanf(\"%f\",&f);
15、若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为。(假设a[0][0]位于数组的第一个位置上)( )
A.i*m+j B.j*m+i C.i*m+j-1 D.i*m+j+1
16、以下叙述正确的是
A.在C程序中,main函数必须位于程序的最前面 B.C程序的每行中只能写一条语句 C.C语言本身没有输入输出语句
D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 17、若有如下语句:
int x=3;
do {printf(\"%d\\n\",x-=2);}while(!(--x)); 上面程序段( )。
A.输出1 B.输出1和-2 C.输出3和0 D.是死循环 18、以下程序有语法性错误,有关错误原因的正确说法是( )。
#include k=prt_char(G); --- } A.语句void prt_char();有错,它是函数调用语句,不能用void说明 B.变量名不能使用大写字母 C.函数说明和函数调用语句之间有矛盾 D.函数名不能使用下划线 19、若有以下定义,则数值不为3的表达式是( )。 int x[10]={0,1,2,3,4,5,6,7,8,9},*p1; A.x[3] B.p1=x+3,*p1++ C.pl=x+2,*(p1++) D.pl=x+2,*++pl 20、设有以下程序段: char str[4][10]={first\",\"second\",\"third\",\"fourth\"), *strp[4];int n; for(n=0;n<4;n++) strp[n]=str[n]; 若k为int型变量且0≤k<4,则对字符串的不正确引用是( )。 A.strp B.str[k] C.strp[k] D.*strp 21、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。 #include {floatx,y,z,sum; scanf(\"%f%1%f\",8.x,&y,8.z); sum=f(【】)+f(z+y,z-y); printf(\"sum=%fNn\",sum); return(0); } float f(float a,float B. {float value; value=a/b; return(value); } A)x-y,x+y B)x+y,x-y C)z+y,z-y D)z-y,z+y22、当运行以下程序时,从键盘输入: ab<回车> C<回车> def<回车> 则下面程序的运行结果是( )。 #include for(;i b c cc d d e f 23、下面程序段的运行结果是( )。 int a[6],i; for(i=1;i<6;i++) {a[i]=9*(i-2+4*(i>3))%5; printf(\"%3d\; } A)-4 0 4 0 4 B)-4 0 4 0 3 C)-4 0 4 4 3 D)-4 0 4 4 024、以下程序( )。 #include {int a=5,b=0,c=0; if(a=b+C.printf(\"***\\n\"); else printf(\"$$$\\n\"); return 0; } A.有语法错不能通过编译 B.可以通过编译但不能通过连接 C.输出*** D.输出$$$ 25、下面程序是输出一个正整数等差数列的前10项,此数列前4项之和及之积分别是26和880,请选择填空( )。
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务