一.单项选择题
C程序练习题
⑴“a”在内存中占 A 字节。 A. 1个 B. 2个 C. 3个 D. 4个 ⑵a=b+=c+5,若b=1,c=2,则a的值是 C 。 A. 1 B. 7 C. 8 D. 出错 ⑶下列合法的变量名是 B 。 A. 123 B. next C. int D. *x
⑷字符型数据在微机内存中的存储形式是 D 。 A. 反码 B. 补码 C. EBCDIC码 D. ASCII码 ⑸请选出可作为C语言用户标示符的一组标示符 B 。 A. void B. a3_b3 C. For D. Za
Define _123 _abc DO WORD IF case sizeof ⑹若变量已正确定义并赋值,不符合C语言语法的表达方式是 B 。
A.
a=a+7 B. a=7+b+c,a++ C. (int)(12.3)%4 D. a=a+7=c+b
⑺TURBO C中int类型变量所占字节数是 B 。 A. 1 B. 2 C. 3 D. 4
⑻执行scanf(“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分别为3和4,则正确的输入方法为 C 。 A. 3,4 B. a:3 b:4 C. a=3, b=4 D. 3 4
⑼下列程序的执行结果是 B 。 A. 5,0,-10 B. 0,0,5 C. –10,5,-10 D. 5,0,5 main( )
{int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+5);
printf(“%d,%d,%d\\n”,a,b,c); }
⑽若输入2.50,下列程序的执行结果是 D 。 A. 0 B. 3.125 C. 3.13 D. 程序有错 main( )
{float r ,area; scanf(“%5.2f”,& r);
printf(“area=%f\\n”,area=1/2*r*r);}
⑾设a,b均是int型变量,则以下不正确的函数调用为 D 。
A. getchar() B. putchar(‘\\106’); C. scanf(“%d,-”,&a,&b); D. putchar(‘\\’); ⑿设a为整形变量,不能正确表达数学关系:10
1
A. 1010&&a<15 D. !(a<=10) &&!(a>=15) ⒀在以下一组运行符中,优先级最高的是 C 。 A. <= B. = C. % D. && ⒁在以下运算符中,优先级最高的运算符是 B 。 A. <= B. / C. != D. &&
⒂假设所有变量均为整形,表达式(a=2,b=5,a>b?a++:b++,a+b)的值是 B 。 A. 7 B. 8 C. 9 D. 2 ⒃在以下运算符中,优先级最高的运算符是 A 。 A. ! B. = C. + D. ‖ ⒄执行下列程序段后,变量的正确结果,供选择的答案是 D 。 A. 10 B. 11 C. 12 D. 13 int i=10,j=0; do { switch(i)
{ case 9 : i++; case 10 : i++; case 11 : i++; defaut : i++; }
} while (j);
⒅以下程序执行 B 次。 A. 5 B. 6 C. 8 D. 9
#include“stdio.h” #define N 2 #define M N+1 #define NUM (M+1)*M/2 main() { int i,n=0;
for(i=1;i<=NUM;i++) { n++;printf(“%d”,n);} printf(“\\n”);}
⒆对两个静态数组A和B进行如下初始化: static char A[]=“ABCDEF”;
static char B[]={‘A’,‘B’,‘C’,‘D’,‘E’,‘F’};
则下列叙述正确的是 D 。 A. A和B完全相同 B. A和B只是长度相同 C. A数组长度比B数组短 D. A数组长度比B数组长
⒇下列对C语言字符数组的描述中错误的是 C 。
A.
字符数组可以存放字符串 B。字符数组中的字符串可以整体输入、输出
C。 可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 D。不可以用关系运算符对字符数组中的字符串进行比较
2
⑴不能把字符串:Hello!赋给数组b的语句是 B 。
A.
char b[10]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’,‘\\0’}; B。char b[10]; b=“Hello!”;
C。 char b[10]; strcpy (b,“Hello!”); D。char b[10]= “Hello!”;
⑵ 若有以下说明:
int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c=‘a’,d,g;
则数值为4的表达式是 D 。 A. a[g-c] B. a[4] C. a[‘d’-‘c’] D. a[‘d’-c] ⑶合法的数组定义是 B 。 A. int a[]=“string” B. int a[5]={1,2,3,4,5} C. char a=“string” D. char a[]={1,2,3,4,5} ⑷若有定义和语句:
static char s1[]=“abcd”; char s2[10];s2=s1; printf (“%s\\n”,s2);
则结果是(以下□代表空格)D 。 A.输出abcd B.输出a C.输出abcd□□□□ D. 编译不通过
⑸以下程序段给数组所有元素输入数据,应在下划线处填入的是 B 。 A. a+(++i) B. &a[i++] C. a+i D. &a [++i]
main ()
{ int a[10],i=0;
while (i<10) scanf (“%d”, ); ?? ;}
⑹变量的指针,其含义为指该变量的 B 。 A. 值 B. 地址 C. 名 D. 一个标志 ⑺设ptr1和ptr2均为指向同一个int型一维数组的指针变量,k为int型变量,则下面不能正确执行的赋值语句是B 。 A. k= *ptr1 + *ptr2; B. ptr2=k; C. ptr1=ptr2; D. k= *ptr1 * (*ptr2);
⑻设char *s=“\\ta\\017bc”,则指针变量s指向的字符串所占的字节数是 C 。 A. 9 B. 5 C. 6 D. 7 ⑼以下程序有错,错误原因是 D 。 main ()
{ int * p,i; char * q ,ch; p=&i; q=&ch; *p=40; *p=*q; ?? ;}
A.
p和q的类型不一致,不能执行*p=*q;语句 B。 *q中存放的是地址值,因此不能执行*p=40;语句
C。 q无具体指向,所以*q无实际意义 D。q虽然指向了具体的存储单元,但该单元无确定值,故不能执行*p=*q
3
⑽有四组对指针变量操作的语句,以下判断正确的是 D 。
①int *p,*q; q=p; int a,*p,*q; p=q=&a ②int a,*p,*q; q=&a; p=*q; int a=20,*p; *p=a ③int a=b=0,*p; p=&a; b=*p; int a=20,*p,*q=&a;*p=*q; ④int a=20,*p,*q=&a; p=q; a=*p;
A.正确:① 不正确②③④ B.正确:①④ 不正确②③ C.正确:③ 不正确①②④ D.正确:④ 不正确①②③ ⑾设程序段 char s[]=“china”; char *p; p=s; 则下列叙述正确的是 CD 。
A. B.
s和p完全相等 B。数组s中的内容和指针变量p中的内容完全相等 s数组长度和p所指向的字符串长度完全相等 D s[0]和*p相等
⑿ 若a、b,、c均为int型变量,则执行以下语句后的a、c值分别为( B )。 a=b=c=-1; ++a || ++b && ++c ; A) 不正确 B) 0和-1 C) 0和0 D) -1和0
⒀若a、b均为int型变量且a=100,则以下关于for循环语句的正确判断为( A )。 for (b=100;a!=b;++a,++b) printf(“--------”) ;
A) 循环体一次也不执行 B) 死循环 C) 循环体只执行一次 D) 输出--------
⒁一个C程序总是从( A )开始执行的。 A)主函数 B) 主过程 子函数 D) 子过程 ⒂在C语言中,int、char和short三种类型数据所占用的内存 ( C )。
A)
均为两个字节 B) 均由用户自己定义 C) 由所用机器的机器字长决定 D) 是任意的
⒃以下哪一个不是正确的转义符 ( C )。 A)‘\\\\’ B) ‘\\’ C) ‘108’ D) ‘\\0’ ⒄以下关于switch语句和break语句的描述中,只有( C )是正确的。
A)
在switch语句中必须使用break语句 B。break语句只能用于switch语句
C。 在switch语句中可以根据需要使用或不使用break语句 D。break语句是switch语句的一部分 ⒅函数定义的缺省类型为 D 。
A. void B. double C. int D. char ⒆在C语言程序中,说法正确的是 B 。
A.
函数的定义可以嵌套,但函数的调用不可以嵌套 B。函数的定义可以不嵌套,但函数的调用可以嵌套
C。 函数的定义和函数的调用都不可以嵌套 D。函数的定义和函数的调用都可以嵌套
⒇ C语言规定,函数返回值的类型是由 D 。
A.
return语句中的表达式类型所决定 B。调用该函数时的主调函数所决定
C。调用该函数时系统临时决定 D.在定义该函数时所指定的函数类型所决定
1、一个C语言程序是由[ C]组成。 A、主程序 B、子程序 C、函数 D、过程 2、下面标识符中,不合法的用户标识符为[ D]。 A、PAd B、a_10 C、CHAR D、a#b 3、在C语言中,int、char和short三种类型数据所占用的内存[ C ]。
A、均为2个字节 B、由用户自己定义 C、由所用机器的机器字长决定 D、是任意的 4、若w=1,x=2,y=3,z=4,则条件表达式w 4 Printf(“%d\\n”,x%=(y%=2)); 6、下列程序正确的运行结果为[B ]。 A、9.800000 B、9.300000 C、8.500000 D、8.000000 # include {int a=1,b=4,c=2; float x=5.5,y=9.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\\n”,z) } 7、运行下面程序后的w值为[A ]。 A、20 B、7 C、28 D、13 main() {int w =2,k; for (k=0; k<3; k++) { w=f(w); printf(“%d\\n”,w); } f(x) int x; {int y=0; static z=3; y++; z++; return(x+y+z); } 8、若有说明语句int i,j,且i的值为6,执行语句j=(++i)+(i++)后,j的值是[ B ]。 A、4 B、14 C、13 D、15 9、若a、b为int型变量,则执行以下语句后,a,b的值为[ D ]。 A、2,9 B、4,2 C、3,-1 D、2、8 a=1; b=10; do {b-=a; a++; }while (b--<0); 10、若a为int型变量,则执行以下语句后的结果为[ A ]。 A、5 B、不打印任何内容 C、4 D、陷入死循环 a=5; do{printf(“-\\n”,a--); }while(!a); 11、若x、y的int型变量,则执行以下语句后的x,y值是[ A]。 A、10,6 B、6,4 C、7,8 D、10,2 for (y=1, x=1; y<=50; y++) {if (x>=10) break; if (x%2= =1) {x+=5; continue; } x-=3; } 12、下列程序正确的运行结果为[ B]。 A、8,20 B、8,8 C、8,17 D、8,16 # include { int j=4, m=1, k; k=fun(j,m); printf (“%d\\n”, k); } fun(x,y) int x,y; { static int m=0, i=2; 5 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库C程序设计考试复习题在线全文阅读。
相关推荐: