c语言复习题
C语言复习60题
01计算机本身最擅长的能力是?A、推理B、想像C、重复D、分析正确答案: C、重复。
02 计算机(CPU)能够直截了当运行人类编写的程序A、√B、×正确答案: B、×、03编程语言是与计算机交谈的语言A、√B、×正确答案: B、×。
04 关于C语言,以下讲法错误的有:A、C语言是与Unix操作系统一同发展起来的B、C语言不能写图形界面的软件C、C语言一般是编译执行的D、C语言诞生于1970年代正确答案: B、C语言不能写图形界面的软件、06 IDE的中文翻译是什么?正确答案是:集成开发环境、07 给定:int a,b; 以下哪些scanf的使用是正确的?A、scanf("%d”,&a); scanf(”%d",&b);B、scanf(”%d %d”, &a, &b);C、scanf("%d, %d", &a,&b);D、scanf("%d%d”, a, b);正确答案: A、scanf("%d”,&a); scanf(”%d", &b);。
B、scanf(”%d%d", &a, &b);、C、scanf(”%d,%d”,&a,&b);、08 以下哪些是有效的变量名?A、mainB、4everC、monkey—kingD、__int正确答案:A、main。
D、__int。
09给定:inta,b; scanf("%d %d", &a, &b);则以下哪些输入方式是正确的?A、1 2B、1,2C、1(回车)2D、1、2正确答案:A、1 2。
C、1(回车)2、10给定以下代码段:inta,b=0;则a的初始值是0A、√B、×正确答案: B、×、11写出下式的运算结果:10/3、0*3 正确答案是:10、0。
12写出下式的运算结果:10/3*3、0正确答案是:9、0。
c语言复习参考题
1、已知int a=6; 则执行a+=a-=a*a;语句后,a的值为A)36 B)0 C)-24 D)-60正确答案: D2、下列表达式中,结果为5的是A)6*5%6 B)5*-2+15 C)5+75%10 D)6+-2/3正确答案: B3、已知int a=1,b=-1;则语句printf("%d\n",(a--,++b));的输出结果是A)-1 B)0 C)1 D)语句错误正确答案: B4、已知x,y,z均为整型变量,且值均为1,则执行语句++x||++y&&++z;后,表达式x+y的值为A)1 B)2 C)3 D)4正确答案: C5、若int i,j;,则for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是A)9 B)8 C)3 D)2正确答案: C6、数学上的不等式和C语言中的关系表达式意义不同。
若x=5,y=6,z=7,则x<y<z在c语言中值为()。
A) 1 B) 0 C) 5 D)77、若整型变量a、b、c、d中的值依次为:1、4、3、2。
则条件表达式a>b?a:c<d?c:d的值(B)。
A)1 B)2 C)3 D)48、设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为()。
A)0 B)1 C)2 D)39、已知char ch=′C′;则以下表达式的值是ch=(ch>=′A′ && ch<=′Z′)?(ch+32):ch;A)A B)a C)Z D)c正确答案: D10、以下选项中,当x为大于1的奇数时,值为0的表达式是:( d)A:x%2= =1 B:x/2 C:x%2!=0 D: x%2==011、为表示关系x≥y≥z,应使用C语言表达式(a)A) (x>=y)&&(y>=z) B)(x>=y)AND(y>=z) C)(x>=y>=z) D)(x>=y)&(y>=z)12、设有定义:int a=2,b=3,c=4;,则以下选项中值为0的表达式是(a)A)(!a==1)&&(!b==0) B)(!a||b)C)a && b D)a||(b+b)&&(c-a)13、逗号表达式(a=3*5,a*4),a+15的值为( B )A)15 B)30 C)60 D)9014、设a=1,b=2,c=3,则(a>b)!=c的值为( B )A) 0 B) 1 C) 2 D)315、设有int i; char c; float f; 则以下结果为整数的表达式是( D )A)i+f B)c+f C)i+c+f D)i*c16、表示关系a<=b<=c的c语言表达式为( B)A) (a<=b)&(b<=c) B) (a<=b)&&(b<=c) C) (a<=b<=c) D) (a<=b)AND(b<=c)17、有表达式:x=(y=4,z=16,k=32),式中x、y、z和k都是int型变量,则x=( c )A) 4 B)16 C) 32 D)5218、执行语句“x=(a=3,b=a- -)后x,a,b 的值依次为(C)A) 3,3,2 B) 3,2,2 C) 3,2,3 D) 2,3,219、若有说明和语句:int a=5; ++a; 此处表达式++a的值是(C )。
c语言习题
二.填空题 1.在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为 _1B__,其数值范围为 0~127 ;一个int数据在内存中所占字节数为 2B ,其数值范围为-32768~32767 ;一个long数据在内存中所占字节 数为 4B ,其数值范围为 -2147483648~2147483647 ;一个float 数据在内存中所占字节数为 4B ,其数值范围为 -3.4*1038~-3.4*10-38, 3.4*10-38~3.4*1038 。 2.C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且 第一个字符必须为 字母 。 3.字符常量使用一对 单引号 界定单个字符,而字符串常量 使用一对 双引号 来界定若干个字符的序列。
3.函数体一般包括( 变量定义序列 ) 和( 执行语句序列
二.判断题 1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结 束。 【 √ 】 2.main函数必须写在一个C程序的最前面。 【 × 】 3.一个C程序可以包含若干的函数。【 √ 】 4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运 行不起任何作用。但是可以增加程序的可读性。【 √ 】 5.C程序的注释只能是一行。【 × 】 6.C程序的注释不能是中文文字信息。【 × 】 8.可以使用Turbo C来编译和连接一个C程序。【 √ 】 9.可以使用Turbo C来运行一个C程序。【√ 】 10.可以使用Turbo C来实时调试(即动态调试)一个C程序。【 √ 】 三.简答题 1. 写出一个C程序的基本结构。 预处理命令序列 void main() { 变量定义序列 执行语句序列 } 2. 简要叙述使用Turbo C 2.0编译和运行一个程序的步骤。 1)编辑源程序,以扩展名.c存盘。
c语言期末复习试题附答案
c语言期末复习试题附答案一、选择题(每题2分,共20分)1. C语言中,下面哪个选项不是合法的数据类型?A. intB. floatC. doubleD. character答案:D2. 在C语言中,下面哪个选项是合法的变量名?A. 2abcB. abc12C. abc_12D. abc&12答案:B3. 下面哪个选项不是C语言的运算符?A. +C.D. %答案:D4. 在C语言中,下面哪个选项表示取模运算?A. %B. /C.D. ^答案:A5. 下面哪个选项是C语言中的关系运算符?A. ==B. !=C. >D. <答案:A、B、C、D6. 下面哪个选项是C语言中的逻辑运算符?B. ||C. !D. &答案:A、B、C7. 下面哪个选项是C语言中的赋值运算符?A. =B. +=C. -=D. =答案:A、B、C、D8. 下面哪个选项不是C语言中的控制语句?A. ifB. whileC. do-whileD. for答案:D9. 在C语言中,下面哪个选项表示循环不变量?A. 初始化表达式B. 循环条件C. 循环体D. 步进表达式答案:D10. 下面哪个选项是C语言中的递归调用?A. function(function());B. function();function();C. function(function());function();D. function();function(function());答案:A二、填空题(每题2分,共20分)1. C语言中,一个整型数据占____个字节。
答案:42. C语言中,一个浮点型数据占____个字节。
答案:43. 在C语言中,一元运算符“++”和“--”的优先级高于二元运算符“+”、“-”、“”、“/”、“%”。
答案:正确4. 在C语言中,关系运算符“==”和“!=”的优先级高于“<”、“>”、“<=”、“>=”。
C语言复习题
《C语言》复习题一、选择题(1) 有如下程序main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}运行该程序的输出结果是: DA) 3 4 B) 4 2 C) 4 3 D) 3 3(第三章输出语句)(2)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;(第四章关系表达式)(3)在以下一组运算符中,优先级最高的运算符是: CA)<= B)=C)% D)&&(第四章运算符的优先级)(4) 请选出合法的C语言赋值语句: BA) a=b=58 B) i++;C) a=58,b=58 D) k=int(a+b)(第三章赋值语句)(5)以下说法中正确的是: CA)#define和printf都是C语句B)#define是C语句,而printf不是C)printf是C语句,但#define不是D)#define和printf都不是C语句(第三章语句概述)(6)若有以下定义: Dchar a; int b;float c; double d;则表达式a*b+d-c值的类型为A) float B) int C) char D) double(第二章类型混合运算)(7)若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.5(第二章类型混合运算)(8)有以下程序#includemain(){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是: AA) 2,1 B) 3,2 C) 4,3 D) 2,-1(第四章逻辑运算符)(9) 以下程序运行后,输出结果是: CA) cde B) 字符c的ASCII码值C) 字符c的地址D) 出错main(){ char *s="abcde";s+=2;printf("%ld\n",s);}(第九章指针的概念)(10)若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为:DA)a<>0 B)!aC)a=0 D)a(第4章条件表达式)(11)有如下程序段,其输出结果是什么: Amain( ){int a=1,b=3,c=5;if (c=a+b)printf ("yes\n");else printf("no\n"); }A) yes B) no C) yes\n D) no\n(第4章条件语句)(12) 假设在程序中a,b,c均被定义成整型,并且已赋大于1的值,则下列能正确表1示代数式----- 的表达式是: DabcA) 1/a*b*cB) 1/(a*b*c)C) 1/a/b/(float)cD) 1.0/a/b/c(第二章类型混合运算)(13)若i ,j已定义为int类型,则以下程序段中内循环体的总的执行次数是: Afor (i=5;i;i--)for(j=0;j<4;j++){...}A)20 B)15C)24 D)16(第五章for循环语句)(14)下面哪个程序段不是死循环: C(A) a=0; sum=0;while(a=1){sum=sum+a;a++;}(B) {int I,sum=0;For(i=1;i<=3;sum++)sum+=I;}(C) sum=0;for(i=1;i<10;i++);sum=sum+i;(D) sum=0;for(i=1; ;i++)sum=sum+i;(第五章for循环语句)15、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)16、不能把字符串:Hello!赋给数组b的语句是: BA)char b[10]={'H','e','l','l','o','!'};B)char b[10];b="Hello!";C)char b[10];strcpy(b,"Hello!");D)char b[10]="Hello!";17、设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)18、请选出以下语句的输出结果: Aprintf("%d\n",strlen("\t\"\065\xff\n"));A) 5 B) 14 C) 8 D) 输出项不合法,无正常输出(19)假定所有变量均已正确说明,下列程序段运行后x的值是: Ba=b=c=0;x=35;if(!a)x--;else if(b);if(c)x=3;else x=4;A)34 B)4 C)35 D)3(第四章if语句)(20) 运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为: CA) 2,0 B) 5,0 C) 5,5 D) 2,5#include<stdio,h>main(){ int v1=0,v2=0;char ch;while((ch=getchar())!='#')switch(ch){ case 'a';case 'h';default; v1++;case '0'; v2++;}printf("%d,%d\n",v1,v2);}(第四章switch语句)(21) 执行以下程序段时: AA) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误x=-1;do {x=x*x; } while(! x);(第五章do_whule语句)(22)执行下面的程序后,a的值为: Bmain(){ int a,b;for (a=1,b=1;a<=100;a++){ if(b>=20)break;if(b%3==1){b+=3;continue;}b-=5;}}A)7 B)8C)9 D)10(第5章break,continue 语句)23) 下面能正确进行字符串赋值操作的语句是: CA) char s[5]={"ABCDE"}; B) char s[5]={'A','B','C','D','E'};C) char *s;s="ABCDEF"; D) char *s; scanf("%s",s);(第6章字符数组的定义;第9章字符串指针)(24)不能把字符串:Hello!赋给数组b的语句是: BA)char b[10]={'H','e','l','l','o','!'};B)char b[10];b="Hello!";C)char b[10];strcpy(b,"Hello!");D)char b[10]="Hello!";(第6章字符数组的使用)(25)函数调用:strcat(strcpy(str1,str2),str3)的功能是: CA)将串str1复制到串str2中后再连接到串str3之后B)将串str1连接到串str2之后再复制到串str3之后C)将串str2复制到串str1中后再将串str3连接到串str1之后D)将串str2连接到串str1之后再将串str1复制到串str3中(第6章字符串处理函数)(26)给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为: CA) 数组X和数组Y等价B) 数组x和数组Y的长度相同C) 数组X的长度大于数组Y的长度D) 数组X的长度小于数组Y的长度(第6章字符数组的定义)(27)以下程序的输出结果是: DA)AfghdEFG B)Abfhd C)Afghd D)Afgd#includemain( ){ char *p1,*p2,str[50]="ABCDEFG";p1="abcd";p2="efgh";strcpy(str+1,p2+1);strcpy(str+3,p1+3);printf("%s",str);}(第6章字符串处理函数;第9章字符串指针)(28)下面哪个程序段编译会出错: DA) max(int x,int y,int *z) B) max(int x, int y){ *z=x>y?x:y;} {return x>y?x:y;}C) max(int x,int y) D) int max(int x, y){ int z; { int zz=x>y?x:y; z=x>y?x:y;return z;} return z;}(29)下列程序执行后输出的结果是: D#include 〈stdio.h〉f(int a){ int b=0;static c=3:a=c+ +,b+ +;returu(a);}main( ){ int a=2,i,k;for(i=0;i<2;i+ +)k=f(a+ +);printf("%d\n",k);}A)3 B)0 C)5 D)4(第7章静态变量)(30)下列程序执行后输出的结果是: Aint d=1;fun (int q){ int d=5;d + =q+ +;printf("%d".d);}main( ){ int a=3;fun(a);d + = a + +;printf("%d\n",d);}A)8 4 B)9 6 C)9 4 D)8 5(第7章函数调用;第3章复合赋值运算符)(31)以下程序的输出结果是: Dmain(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A)10 10 B)9 9C)9 10 D)10 9(第7章函数调用时,参数结合方式:右结合)(32)有以下程序int fun(int x , int y , int *cp , int *dp){ *cp=x+y; *dp=x-y; }main(){ int a, b, c, d;a=30; b=50;fun(a,b,&c,&d);printf("%d,%d\n", c, d);}输出结果是: CA)50,30 B)30,50 C)80,-20 D)80,20(第7章函数调用;第9章指针变量做参数)(33)执行下面的程序后,a的值是: B#define SQR(X) X*Xmain( ){ int a=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}A)10 B)1 C)9 D)0(第8章带参宏定义)(34) 以下有关宏替换的叙述不正确的是: DA) 宏替换不占用运行时间 B)宏名无类型C)宏替换只是字符替换 D)宏名必须用大写字母表示(第8章宏定义)(35)C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(第8章宏定义运行特点)(36)若有宏定义如下:#define X 5#define Y X+1#define Z Y * X / 2则执行以下printf语句后,输出结果是: Dint a; a=Y;Printf("%d\n", Z);Printf("%d\n", - - a);A) 7 B) 12 C) 12 D) 76 6 5 5(第7章函数调用;第8章带参宏定义)37、若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是: DA) &t[3][2]B) t[3][2] C) t[1][0] D) t[2]+138、若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是: CA)1 B)2C)2.0 D)2.539、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是: CA)c=b=a;B)(a=c)‖(b=c);C)(a=c)&&(b=c);D)a=c=b;40、C语言的编译系统对宏命令的处理是: DA) 在程序运行时进行的B) 在程序连接时进行的C) 和C程序中的其它语句同时进行编译的D) 在对源程序中其它成份正式编译之前进行的(41)请读程序:#define ADD(x) x+xmain(){int m=1, n=2, k=3;int sum=ADD(m+n) * k;printf("sum=%d", sum);}上面程序的运行结果是: BA) sum=9 B) sum=10 C) sum=12 D) sum=18(第8章带参宏定义)(42)在宏定义 #define PI 3.14159中,用宏名PI代替一个: DA) 常量 B)单精度数 C)双精度数 D)字符串(第8章宏定义)(43)设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0]则下列能够正确表示数组元素a[1][2]的表达式是: DA)*((*prt+1)[2]) B)*(*(p+5))C)(*prt+1)+2 D)*(*(a+1)+2)(第9章数组指针与指向主组的指针)44、能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假“的表达式是___C____。
c语言复习题
A. 6 B. 7 C. 11 D. 12
(10) 合法的数组定义是( )。 A
A. char a[ ]= "string " ; B. int a[5] ={0,1,2,3,4,5}; C. char a= "string " ; D. char a[ ]={0,1,2,3,4,5}
A. int a[7]; B. #define N 5 long b[N]; C. char c[5]; D. int n,d[n];
(4) 对字符数组进行初始化,( )形式是错误。 B
A. char c1[ ]={'1', '2', '3'}; B. char c2[ ]=123; C. char c3[ ]={ '1', '2', '3', '\0'}; D. char c4[ ]="123";
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为 0 。
3、设 c='w',a=1,b=2,d=-5, 则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为 1 、 0 、 1 、 1 。
(8) 设有定义:char s[12] = "string" ; 则printf( "%d\n",strlen(s)); 的输出是( )。 A
A. 6 B. 7 C. 11 D. 12
(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( )。 D
C语言复习题
1. 若有定义:long int j,*p;,则操作j=(long int)p;是合法操作。
√ ×正确2. 设有说明int(*ptr)[M];其中ptr是指向含有M个整型元素的一维数组的指针。
()√ ×正确3. 对同一类型的两个指针变量而言,一个变量向另外一个变量赋值的结果是使得两个指针指向同一个对象。
√ ×正确4. 定义一个指向某种类型函数的指针后,就可以讲任何函数的首地址赋给这个指针变量。
√ ×错误正确答案为×5. 可以将一个整型指针变量的值赋给一个实型指针变量,但可能引起符号位扩展。
√ ×错误正确答案为×6. 可以将一个实型指针变量的值赋给一个整型指针变量,但可能影响指针的精度。
√ ×错误正确答案为×7. 由于指针的数据类型实际上是指定指针所能指向对象的数据类型,所以不通数据类型的指针变量不能相互赋值。
√ ×正确8. 函数中使用指针变量作为形式参数,就有可能在被调函数中操作主调函数中的实参。
√ ×正确9. 若有定义:int a[5],*p;,则操作p=a;是合法的操作。
√ ×正确10. 若有定义:int a[5],*p;,则操作p=&a[2];是合法的操作。
√ ×正确11. 若有定义:int a[5][5],*p;,则操作p=a;是合法操作。
√ ×错误正确答案为×12. 若有定义:int a[5][5],*p;,则操作p=*a;是合法操作。
√ ×正确13. 若有定义:int a[5][5],*p;,则操作p=a[0];是合法操作。
√ ×正确14. 若有定义:int a[5][5],*p;,则操作p=&a[0][0];是合法操作。
√ ×正确15. 若有定义:int a[5][5],(*p)[5];,则操作p=a;是合法操作。
(完整版)C语言各章节复习题(带答案)
一、C语言概述练习题选择1.一个C程序的执行是从。
A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序文件的第一个函数开始,到本程序main函数结束D) 本程序的main函数开始,到本程序文件的最后一个函数结束2.以下叙述不正确的是。
A) 一个C源程序必须包含一个main函数 B)一个C源程序可由一个或多个函数组成C) C程序的基本组成单位是函数 D) 在C程序中,注释说明只能位于一条语句的后面3.以下叙述正确的是。
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误B) 在C程序中,main函数必须位于程序的最前面C) C语言本身没有输入输出语句 D) C程序的每行中只能写一条语句4.一个C语言程序是由。
A)一个主程序和若干个子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成5.计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是。
A) C语言程序仅可以编译执行B) C语言程序仅可以解释执行C) C语言程序既可以编译执行又可以解释执行D) 以上说法都不对6.以下叙述中错误的是。
A) C语言的可执行程序是由一系列机器指令构成的B)用C语言编写的源程序不能直接在计算机上运行C)通过编译得到的二进制目标程序需要连接才可以运行D)在没有安装C语言集成开发环境的机器上不能运行C源程序生成的.exe 文件7.以下叙述正确的是。
A) C语言程序是由过程和函数组成的B) C语言函数可以嵌套调用,例如:fun(fun(x))C) C语言函数不可以单独编译 D) C语言中除了main函数,其他函数不可作为单独文件形式存在二、数据类型、运算符与表达式选择.1.若x、i、j、k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16,k=32) A) 4 B) 16 C) 32D) 522.下列四组选项中,均不是C语言关键字的选项是。
C 语言复习题(完整版)
所有单选题1、C语言中下列叙述正确的是__d____。
A:不能使用do-while语句构成的循环B:do-while语句构成的循环,必须用break语句才能退出C:do-while语句构成的循环,当while语句中的表达式值为非零时结束循环 1真0假,1 进入循环 D:do-while语句构成的循环,当while语句中的表达式值为零时结束循环答案:D2、以下选项中属于C语言的数据类型是__C____。
A:复数型B:逻辑型C:双精度型D:集合型答案:C3、下列描述中不正确的是__C____。
A:字符型数组中可以存放字符串B:可以对字符型数组进行整体输入、输出C:可以对整型数组进行整体输入、输出D:不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值答案:C4、以下程序的输出结果是______。
main(){ int x=10,y=10,i;for(i=0;x>8 ;y=++i)printf("%d %d ",x--,y);}A:10 1 9 2B:9 8 7 6C:10 9 9 0D:10 10 9 1答案:D5、以下程序的输出结果是______。
main(){ char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i ;i=8;p=a+i;printf("%s\n",p-3);}A:6B:6789C:'6'D:789答案:B6、能正确表示a和b同时为正或同时为负的逻辑表达式是__D____。
A:(a>=0||b>=0)&&(a<0|| b<0)B:(a>=0&&b>=0)&&(a<0&&b<0)C:(a+b>0)&&(a+b<=0)D:a*b>0答案:D7、以下程序的输出结果是__A____。
C语言复习题及参考答案
C语言复习题及参考答案一、单项选择1、以下叙述正确的是:__B__。
A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C语言中的函数不可以单独进行编译。
2、以下4个用户定义标识符中,全部合法的一组是__A__。
A)_main enclude sin B)if –max turbo C)txt REAL 3COM D)int k_2 _001 3、以下不能定义为用户标识符的是_D__。
A)scanf B)Void C)_3com D)int4、C语言中用于结构化程序设计的3种基本结构是__A__。
A)顺序结构、选择结构、循环结构B)if、switch、breakC)for、while、do-whileD)if、for、continue5、为解决某一特定问题而设计的指令序列称为__C__。
A)文档B)语言C)程序D)系统6、用高级程序设计语言编写的程序称为__C__。
A)目标程序B)可执行程序C)源程序D)伪代码7、能将高级语言编写的源程序转换成目标程序的是__B__。
A)编辑程序B)编译程序C)驱动程序D)链接程序8、下列叙述中,正确一条是__C__。
A)计算机语言中,只有机器语言属于低级语言。
B)高级语言源程序可以被计算机直接执行。
C)C语言属于高级语言。
D)机器语言是所用机器无关的。
9、以下符合C语言语法的实型常量是__C__。
A)1.2E0.5B)3.14159E C).5E-3D)E1510、下面叙述正确的是__A___。
A)C程序中注释部分可以出现在程序中任何合适的地方。
B)花括号“{”和“}”只能作为函数体的定界符。
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名。
D)分号是C语句之间的分隔符,不是语句的一部分。
11、设有以下定义:int a=0; double b=1.25; char c=’A’;#define d 2则下面语句中,错误是__D__。
C语言模拟复习题及答案
一、选择题1. 以下叙述错误的是 A 。
A.C程序在书写时,有严格的缩进要求,否则不能编译通过B.一个C程序只能有一个主函数C.一个C程序可以包含多个不同名的函数D.C程序的主函数必须用main作为函数名2. 下列程序段的输出结果是 4 3 2 1 。
void fun(int *x, int *y){ printf("%d %d ", *x, *y); *x=1; *y=2;}main(){ int x=3,y=4;fun(&y,&x);printf("%d %d",x, y); }3. 若有定义语句:int x=3,y=2,z;在其后执行语句z=0.9+x/y;则z 的值为 1 。
4. 有以下程序#include <stdio.h>main(){ int a;scanf("%d",&a);if(a++<8) printf("%d\n",a);else printf("%d\n",a--); }程序运行时键盘输入8<回车>,则输出的结果是9 。
5. 以下定义整型3行4列的二维数组a并初始化不正确的是C 。
A.int a[3][4]={0} B.int a[][4]={0,1,2,3,4,5,6,7,8,9,10,11,12}C.int a[3][]={0,1,2,3,4,5,6,7,8,9,10,11,12} D.int a[3][4]={{1,2},{1,2,3},{1,2,3,4}}6. 有以下程序#include <stdio.h>main(){ int c=0,k;for (k=1;k<3;k++)switch (k){ default: c+=k;case 2: c++;break;case 4: c+=2;break;}printf(“%d\n”,c); }程序运行后的输出结果是 3 。
C语言复习题及答案
C语言复习题及答案一.单项选择题1.下列选项中,不是转义字符集中的符号是( C )。
A \\B \’C 074D \02. 下列给出的符号串中,不属于C语言保留字的是( B )。
A switchB cherC caseD else3. 下列给出的符号串中,不能作为C语言标识符的是( C )。
A a_2B _2aC a.3D a_34. 下列属于C语言字符常量的是( C )。
A ‘abc’B “\n”C ‘a’D ‘a\0’5. 字符串”ABC”再内存占用的字节数为( B )。
A 3B 4C 6D 86. 设有宏定义“#define R 2+3”,则R*R的宏替换结果正确的是( B )。
A (2+3)*(2+3)B 2+3*2+3C 5*5D 5.0*5.07. 设整形变量I的值为3,则表达式i---i的值为( A )。
A 0B 1C 2D 38. 表达式“10!=9”的值为( D )。
A trueB 非零值C 0D 19. 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值为( D )。
A 3B 0C 9D -1210. 下列选项中,正确的赋值表达式为( C )。
A a=7+b+c=a+7B a=7+b++=a+7C a=(7+b,b++,a+7)D a=7+b,c=a+711. 若有以下定义语句:char a;float c; double d; 则表达式a*b+d-c值的类型为( D )。
A floatB intC charD double12. 用十进制数表示表达式“12||012”的运算结果是( A )。
A 1B 0C 14D 1213. 下列一组运算符中,优先级别最高的运算符是( C )。
A <=B =C %D &&14. 设定“ char a=3,b=6,c;”,计算表达式c=(a^b)<<2后c的二进制值是( D )。
A 00011100B 00000111C 00000001D 0001010015. 设x,y,z,t 均为int类型,则执行下列语句串后,变量t的值为(C )。
C语言考试复习题
11.如下定义“char c1=’a’, c2=’b’, c3=c1-c2;”后执行printf(“%d”,c3);结果为无任何显示。( )
12.可以有如下定义:“int a=b=c=0;”。( )
13.执行“int x=4, y=5; float z=x/y;”后,z的值为0.8。( )
A.0 B. C. 2 D. -1
20. 下列程序执行后的输出结果是( )。
A. G B. H C. I D. J
main ( )
{ int x=’f’;printf(“%c\n”,’A’+(x-‘a’+1));}
21. 下列程序执行后的输出结果是( )。
printf(“%d\n”,d*y); }
18. 下列变量定义中合法的是( )。
A.short _a=.1e-1; B. double b=1+5e2.5;
C. long do=0xfdaL; D. float 2_and=1-e-3;
19. 设“int x=1,y=1;“,表达式(!x||y--)值是( )。
3. 字符型常量在内存中存放的是( )。
A.ASCII码 B. BCD码 C. 内部码 D. 十进制码
4. 若变量a,i已正确定义,且i已正确赋值,合法的语句是( )。
A. a==1 B. ++i; C. a=a++=5; D. a=int(i);
A.复数型 B. 逻辑型 C. 双精度型 D. 集合型
15.在C语言中,不正确的int类型的常数是( )。
A.32768 B. 0 C. o37 D. oxAF
16. 当c的值为0时,在下列选项中能正确将c的值赋给变量a,b的是( )。
c语言复习试题及答案
c语言复习试题及答案1. 什么是C语言?C语言是一种通用的、过程式的编程语言,广泛用于系统软件与应用软件的开发。
2. C语言中的关键字有哪些?C语言的关键字包括:int, char, float, double, void, struct, union, enum, return, break, continue, if, else, switch, case, default, while, do, for, goto, sizeof, typedef。
3. 请写出C语言中声明一个整型变量的语句。
int variable_name;4. 如何在C语言中定义一个函数?在C语言中,定义一个函数需要指定返回类型、函数名和参数列表。
例如:int add(int a, int b) {return a + b;}5. 请解释C语言中的数组。
数组是相同数据类型元素的集合,存储在连续的内存位置。
声明数组的语法如下:数据类型数组名[数组大小];6. C语言中如何实现字符串的输入和输出?使用`scanf`函数输入字符串,使用`printf`函数输出字符串。
7. C语言中如何进行文件操作?使用`fopen`函数打开文件,`fprintf`函数写入文件,`fscanf`函数读取文件,`fclose`函数关闭文件。
8. 请写出一个C语言程序,实现计算两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("Enter two numbers: ");scanf("%d %d", &a, &b);sum = a + b;printf("Sum of the numbers is: %d", sum);return 0;}9. 什么是指针?指针是一个变量,其值为另一个变量的地址。
C语言复习题带答案
一、选择题1、以下叙述中正确的是( A )A、构成C程序的基本单位是函数B、可以在一个函数中定义另一个函数C、main( )函数必须放在其它函数之前D、所有被调用的函数一定要在调用之前进行定义2、以下选项中合法的实型常数是( D )3、以下选项中合法的用户标识符是( B )4、已知大写字母A的ASCII码是65,小写字母a的ASCII码是97,则用八进制表示的字符常量’101’是(A )A、字符AB、字符aC、字符eD、非法的常量5、以下非法的赋值语句是( C )A、n=(i=2,++i);B、j++;C、++(i+1);D、x=j>0;6、设a和b均为double型常量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是( D )7、已知i、j、k为int型变量,若从键盘输入:1,2,3<回车>,使i 的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是(C )A、scanf(“%2d%2d %2d”,&i,&j,&k) ;B、scanf(“%d %d %d”,&i,&j,&k) ;C、scanf(“%d, %d, %d”,&i,&j,&k) ;D、scanf(“i=%d, j=%d, k=%d”,&i,&j,&k) ;8、与数学式子3乘以x的n次方/(2x-1)对应的C语言表达式是(C )A、3*x^n/ (2*x-1)B、3*x**n/ (2*x-1)C、3*pow(x,n)*(1/ (2*x-1))D、3*pow(n,x)/ (2*x-1)9、设有定义:long x=-123456L;,则以下能够正确输出变量x值的语句是(B )A、printf (“x=%d “,x);B、printf (“x=%ld “,x);C、printf (“x=%8dL “,x);D、printf (“x=%LD “,x);10、若有以下程序:main( ){int k=2,i=2,m;m=(k+=i*=k); printf (”%d,%d ”,m,i);}执行后的输出结果是( C )A、8,6B、8,3C、6,4D、7,411、已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1&&y+z/2 的值是( D )A、6B、0C、2D、112、有一函数y=以下程序段中不能根据x的值正确计算出y的值的是( C )A、 if(x>0) y=1;else if (x==0) y=0; else y=-1;B、 y=0; if(x>0) y=1; else if(x<0) y=-1;C、 y=0; if(x>=0) if(x>0) y=1;else y= -1;D、 if(x>=0) if(x>0) y=1;else y= 0;else y=-1;13、以下选项中,与k=n++完全等价的表达式是(A )A、k=n, n=n+1B、n=n+1,k=nC、k= ++ nD、k+=n+114、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){int n,k;float score,sum,ave;sum=0.0;for(n=1;n<=10;n++){for(k=1;k<=4,k++){scanf(“%f”,&score);sum+=score;}ave=sum/4.0;printf(“NO%d:%f “,n,ave);}}上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确,这条语句是( A )A、sum=0.0;B、sum+=score;C、ave=sum/4.0;D、printf(“NO%d:%f “,n,ave);15、有以下程序段int n=0,p;do {scanf(“%d”,&p);n++} while(p!=12345&&n<3);此处do-while循环的结束条件是(D )A、 p的值不等于12345并且n的值小于3B、 p的值等于12345并且n的值大于等于3C、 p的值不等于12345或者n的值小于3D、 p的值等于12345或者n的值大于等于316、有以下程序( A)main(){int a=15,b=21,m=0;switch(a%3){case 0;m++;break;case 1;m++;switch(b%2){default:m++;case 0;m++;break;}}printf(“%d”,m);}A、1B、2C、3D、417、C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是( B )A、voidB、intC、floatD、double18、有以下程序int f(int n){if (n==1) return 1;else return f(n-1)+1;}main(){int i,j=0;for (i=1;i<3;i++) j+=f(i);printf(’%d ”,j);}程序运行后的输出结果是( B )A、4B、3C、2D、119、C语言规定,在一个源程序中,main( )函数的位置(C )A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后20、下列数据中,不合法的C语言实型数据是(C )21、下面4个选项中,均是不合法的用户标识符的选项是(C )A、AP_0doB、floata0_AC、b-agotointD、_123tempint22、设变量a是int型,f是float型,i是double型,则表达式10+’a’+i*f值的数据类型为( C )A、intB、floatC、doubleD、不确定23、能正确表示逻辑关系:”a>10或a<0”的C语言表达式是(D )A、a>=10 or a<=0B、a>=10 | a<=0C、D、a>=10 || a<=024、设以下变量均为int类型,表达式的值不为7的是(C )A、(x=y=6,x+y,x+1)B、(x=y=6,x+y,y+1)C、(x=6,x+1,y=6,x+y)D、(y=6,y+1,x=y,x+1)25、若变量a是int类型,并执行了语句:a=’A’+1.6;,则正确的叙述是(D )A、a的值是字符CB、a的值是浮点型C、不允许字符型和浮点型相加D、a的值是字符’A’的ASCII值加上126、有如下程序main( ){int x=23;do{printf(“%d”x--);} while(!x);}该程序的执行结果是(B )A、321B、23C、不输出任何内容D、陷入死循环27、若变量c为char类型,能正确判断出c为小写字母的表达式是( D )A、’a’<=c<=’z’B、(c>=’a’) || (c<=’z’)C、(’a’<=c) and (’z’>=c)D、(c>=’a’) && (c<=’z’)28、以下不正确的定义语句是( B )A、double x[5]={2.0,4.0,6.0,8.0,10.0};B、int y[5.3]={0,1,3,5,7,9};C、char c1[ ]={‘1’,’2’,’3’,’4’,’5’};D、char c2[ ]={‘\x10’,’\xa’,’\x8’};29、有以下程序fun(int x,int y,int z){z=x*y;}main( ){int a=4,b=2,c=6;fun(a,b,c);printf(“%d”,c);}程序运行后的输出结果是( B )A、16B、6C、8D、1230、下列函数的运行结果是(A )main( ){int i=2,p;int j,k;j=i;k=++i;p=f (j,k);printf(”%d”,p);}int f (int a,int b){int c;if (a>b) c=1;else if (a==b) c=0;else c=-1;return c;}A、-1B、1C、2D、编译出错,无法运行31、下面可以作为C语言程序中标识符的是(A )A、_total3B、num(10)C、2DateD、long32、已知字符‘A’的ASCII值为65,则‘\103’表示的字符是( C )A、字符AB、字符BC、字符CD、非法常量33、每个C语言程序都必须有一个(B )函数,C程序总是从该函数开始执行。
C语言复习题及答案
复习A:一、单项选择题1、如果要把常量327存入变量a中,a不能定义的类型是哪一个?()A)int B)char C)long D)float2、若x 为unsigned int 型变量,则执行下列语句后x值为()x = 65535;printf(“%d\n”,x);A)65535 B)1 C)无定值D)-13、有以下程序main(){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf(″%d,%d\n″,k,m);}程序运行后的输出结果是()A)0,0 B) 0,1 C)1,0 D)1,14、在C语言中,如果下面的变量都是int类型,则输出的结果是()。
sum=pad=5; pAd=sum + + ,pAd + +, + + pAd;printf("%d\n",pad);A) 7 B) 6 C) 5 D) 45、以下程序的输出结果是()。
main(){ int a=4,b=5,c=0,d;d=!a&&!b||!c;printf("%d\n",d);}A)1 B)0 C)非0的数D)-16、当执行以下程序段时()。
x=-1;do{x=x*x;}while(!x);A)循环体将执行一次B)循环体将执行两次C)循环体将执行无限次D)系统将提示有语法错误7、全局变量的存储类型可以定义为()。
A)auto或static B)extern或registerC)auto或extern D)extern或static8、定义全局变量时,若变量的的存储类别缺省,则默认的存储类型是()。
A)auto B)registerC)extern D)static9、已知:int a, x; 则正确的赋值语句是()。
A)a=(a[1]+a{2})/2; B)a*=*a+1;C)a=(x=1, x++, x+2); D)a="good";10、已知:int a, *p=&a; 则下列函数调用中错误的是()。
C语言考试复习题及答案
一、单选题(请将正确答案写在答题纸,1~20题每题1分,21~35题每题2分,共50分)1. 下列关于C语言的说法不正确的是( D )。
A.C语言既具有高级语言的一切功能,也具有低级语言的一些功能B.注释可以出现在程序中任意合适的地方C.C语言中的每一条执行语句都必须用分号结束,分号是C语言的一部分D.定义函数的首行要加分号2. C语言程序的执行顺序是(B)。
A.从第一个函数开始执行B.从main函数开始执行C.从任意函数开始执行D.从第一条语句开始执行3. 以下关于注释的叙述,正确的是(D)。
A.注释参与编译,影响程序结果B.注释不参与编译,但影响程序结果C.注释参与编译,但不影响程序结果D.注释不参与编译,不影响程序结果4. 以下叙述正确的是(A)。
A.C语言程序可以在任意C编译器下编译B.C语言程序只能在TC环境下编译C.C语言程序只能在VC或TC环境下编译D.C语言程序只能在VC环境下编译5. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( B )。
A.必须为字母B.必须为下划线或字母C.必须为下划线D.可以是字母,数字和下划线中任一字符6. 下面四个数字常量选项中,书写均正确的是(D)。
A.016 0x8f 018 (零开头的是八进制,不能用8)B.0312 7ff -087(8进制没有符号)C.0xbc 0a7(8进制没有a)0xaD.070 0xf1 0x19(16进制以ox开头)7. 若有说明语句:char c=0x7f;则变量c(B)。
A.包含3个字符B.包含1个字符C.包含2个字符D.说明不合法,c的值不确定8. 设有int x=11;则表达式(++x*1/3)的值是( B )。
(11+1再除以3)A.3B.4C.11D.129. 阅读下面程序段,输出结果为( B )。
(z-a=25)#include "stdio.h"void main(){ char c;c=('z'-'a')/3+'A';putchar(c);}A.HB.JC.ID.K10. 若有定义和语句:int a=23,b=023; printf(“%x,%d \n”,a,b);输出结果是( D )。
c语言复习试题及答案
c语言复习试题及答案C语言复习试题及答案一、选择题1. C语言中,一个整型变量的取值范围是:A. -128 到 127B. -32768 到 32767C. -2147483648 到 2147483647D. 取决于编译器答案:D2. 下列哪个关键字用于定义C语言的结构体?A. structB. defineC. unionD. enum答案:A3. C语言中,字符串在内存中是以什么方式存储的?A. 字符串名B. 字符串长度C. 字符串本身D. 字符串结束标志 '\0'答案:D4. 在C语言中,函数返回值的类型由什么决定?A. return 语句B. 函数名C. 函数定义时指定的类型D. 函数参数的类型答案:C5. 下列哪个操作符不能用于位操作?A. &B. |C. ^D. ++答案:D二、填空题6. C语言中,预处理器指令 `#include` 的作用是_______。
答案:引入其他文件7. `int main()` 函数中的 `void` 表示该函数_______。
答案:不返回任何值8. 在C语言中,数组的索引是从_______开始的。
答案:09. `printf` 函数的返回类型是_______。
答案:int10. 表达式 `3.0 / 0` 在C语言中会导致_______。
答案:运行时错误三、简答题11. 请简述C语言中指针的概念及其用途。
答案:指针是一种变量,它存储的是另一个变量的内存地址。
指针在C语言中用于直接访问内存、动态内存分配、数组操作、函数参数传递等。
12. 解释C语言中数组和指针之间的关系。
答案:在C语言中,数组名可以作为指针使用,它指向数组的第一个元素的地址。
通过指针可以遍历数组,也可以通过指针修改数组元素的值。
四、编程题13. 编写一个C语言程序,实现对整数数组的排序。
```c#include <stdio.h>void sort(int arr[], int n) {int i, j, temp, min_idx;for (i = 0; i < n - 1; i++) {min_idx = i;for (j = i + 1; j < n; j++) {if (arr[j] < arr[min_idx]) {min_idx = j;}}if (min_idx != i) {temp = arr[i];arr[i] = arr[min_idx];arr[min_idx] = temp;}}}int main() {int arr[] = {64, 34, 25, 12, 22, 11, 90}; int n = sizeof(arr) / sizeof(arr[0]);sort(arr, n);printf("Sorted array: \n");for (int i = 0; i < n; i++) {printf("%d ", arr[i]);}printf("\n");return 0;}```14. 编写一个C语言程序,实现字符串的反转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言复习题一.选择题1.设有定义:char string[]="Beijing!"; 则元素string[7]为()A. gB. !C. \0D. n2.C语言具有特点不包含()A.目标代码质量高,程序执行效率高B.编写的程序可移植性好C.程序设计自由度大D.运算符少3.C语言中()表示逻辑真值A.trueB..t.C.整型值0D.非0整数4.设有int i=3,j=9;则表达式k=i++*--j的值为()A.32B.24C.27D.365.下面程序的输出为()#includemain( ){ char str[]="ABC",*p=str;printf("%c%c%c",*p++,*p++,*p++);}A.CBAB.ABCC.BACD.CAB6.已知int类型占2个字节,若有说明语句:struct st{int num;char name[10];double gz;}; 则,sizeof(struct st)的值为()A.18B.20C.8D.207.若int a=1,b=2;则a|b的值是()A.0B.1C.2D.38.凡是没有显示定义存储类别的局部变量,其默认的存储类别是()A.自动的B.静态的C.外部的D.寄存器的9.设有整型变量a,实型变量f,双精度型变量x,则表达式10+x*f的值的类型为()A.intB.floatC.doubleD.不能确定10.为了避免嵌套的条件语句if-else的二意性,C语言规定,else与( )配对.A.缩排位置相同的ifB.其之前最近没有配对的ifC.其之后最近没有配对的ifD.同一行上的if11.C语言的三种基本结构是( )A.顺序结构、选择结构、循环结构B.递归结构、循环结构、转移结构C.嵌套结构、递归结构、顺序结构D.循环结构、转移结构、顺序结构12.具有相同类型的指针变量p 和数组a,不能进行的操作是()A.p=aB.*p=a[0]C.p=&a[0]D.p=&a13.函数fscanf的功能是()A.将信息从文件输入B.将信息输出到文件C.将信息从控制台输入D.将信息输出到控制台终端上14.C语言中while和do-while语句的主要区别是()A.do-while的循环体至少无条件执行一次B.do-while允许从外部转到循环体内部C.do-while的循环体不能是复合语句D.while循环控制条件比do-while的循环控制条件严格15.使用共用(联合)体union的目的是()A.将一组数据作为一个整体,以便于其中的成员共享同一存储空间B.将一组具有相同类型的数据作为一个整体,以便其成员共享同一存储空间C.将一组数据作为一个整体,以便于程序使用D.将一组具有相同类型的数据作为一个整体,以便于程序使用16.表达式k=(12>10)?4:1?2:3的值为()A.1B.2C.3D.417.若ch 为字符型变量,i为整型变量,j为长整型变量,则表达式(char *i)+(int)(f/d)+(i+f)+(i/j)的类型是()A.整型intB.长整型C.字符型D.double型18.运行下列程序时,若输入的命令为:file1 -456 NET4则程序运行的结果是()void main(int argc,char *argv[]){ int i;for(i=1;i<="">}A. file1 -456 NET4B.file1 -456C. -456 NET4D. NET419.下列程序的运行结果是()void main(){ int i,x=0;for(i=1;i<16;i++) x=x+i%3;printf("%d",x);}A.1B.15C.90D.1620.有下列程序#define A(x,y) x*y+3*y+x/yvoid main(){ int a,b;a=4;b=3;printf("%x",A(b,a));}A.15B.24C.18D.0x1821.int *s()的含义是()A.指一个返回整型值的函数sB.指一个返回指向整型值指针的函数sC.指一个指向s()的指针,函数返回一个整型值D.指向一个返回一维数组的指针。
22.一个C语言程序是由()组成。
A.一个函数B.一个或若干个函数C.一个过程D.一个过程或若干个函数23.设定义有字符数组a,则正确的输入语句是()A.gets(’a’)B.scanf("%c",a)C.scanf("%s",a);D.gets("a");24.如果程序中有static char c;则编译程序会对其自动设置初值为()A.’\n’B."\n"C.0D.’\0’25.如果程序中有#include"文件名" 则意味着()。
A.将文件名所指的那个文件的全部内容,在此命令行出现的这一点上,插入源程序;B.指定标准输入输出;C.宏定义一个函数;D.条件编译说明。
26.设有int a=3,b=10,k=0;则表达式k=a--/--b执行后,k的值为()A. 3B. 5C. 33333D. 027.系统为一个结构体变量分配空间时,其所占空间为()A.结构体第一个成员所占用的容量;B.结构体中所有成员所占用的容量;C.结构成员中所占用容量最大者;D.结构体中最后一个成员所占用的容量;28.如果程序中有语句FILE *fp;fp=fopen(" abc.txt","w");则程序准备做()A.对文件读写操作B.对文件读操作C.对文件写操作D.对文件不操作29.若有以下说明和语句:int c[4][5],(*cp)[5];cp=c;那么c数组元素的正确引用是()。
A.cp+1B.(cp+1)C.*(cp+1)+3D.*(*cp+2)30.以知int 数据类型占2个字节,char类型占一个字节,double 类型占8个字节,则struct st{int num;char name[10];double gz;},则sizeof(struct st)的值为( )A.18B.20C.8D.1031.执行下列程序main(){static int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};char *PF;PF="%d,%d,%d,%d,%d\n";printf(PF,a,*a,a[0],&a[0],&a[0][0]);printf(PF,a+1,*(a+1),a[1],&a[1],&a[1][0]);printf(PF,a+2,*(a+2),a[2],&a[2],&a[2][0]);printf("%d,%d\n",a[2]+1,*(a+1)+2);}后输出的不同值的语句是()A. printf(PF,a,*a,a[0],&a[0],&a[0][0]);B. printf(PF,a+1,*(a+1),a[1],&a[1],&a[1][0]);C. printf(PF,a+2,*(a+2),a[2],&a[2],&a[2][0]);D. printf("%d,%d\n",a[2]+1,*(a+1)+2);32.下程序将pss指的字符串拷贝到pds所指的存储空间cpystr(char *pss,char *pds){while(______);}则其中横向中的正确内容可以是()A.*pds++=*pss++B.pds++=pss++C.*++pds=*++pssD.++pds=++pss33.下列语句中正确的是()A.char *ps="C Language";B.char st[20];st={"C Language"};C.char ps="C Language";D.char *ps=’C’;34.int max(int a,int b){return a>b?a:b;}main(){int(*pmax)();int x,y,z;pmax=max;printf("input two numbers:\n");scanf("%d%d",&x,&y);z=___________;printf("maxmum=%d",z);}横线上的正确的表达式是()A. *pmax(x,y);B. pmax(x,y);C. (*pmax)(x,y);D. (*pmax)[x,y];35.下列语句正确的是()A.char (*name)[3]={"Monday","Tuesday","Wednesday"}B.char *name[3]={"Monday","Tuesday","Wednesday"}C.char name[3]={"Monday","Tuesday","Wednesday"}D.char *name={"Monday","Tuesday","Wednesday"}36.下列说法:int (*p)[N];定义一个指针组int *p[N];定义一个指向数组的指针int (*p)();定义一个指向函数的指针int *p();定义一个指向函数的指针中正确的个数是()A. 0B. 1C.2D.337.已知s1和s2的定义语句为:char s1[30],s2[30];则下列输入语句正确的是()(A)scanf("%s,%s",s1,s2);(B)scanf("%c,%c",s1,s2);(C)scanf("%s %s",s1,s2);(D)scanf("%c %c",s1,s2);二.读程序1.下列程序执行时,如果输入字符序列Windows!运行结果是#includevoid main(){void reverse();reverse();}void reverse(){char c;c=getchar();if(c==’!’) printf("%c",c);else{ reverse();printf("%c",c);}}2.#include#define FUN(x,y) x*y;void main(){ int a=2,b=3;int c=FUN(1+a,1+b)printf("%d\n",c);}3.#includeunsigned fun6(unsigned num) { unsigned k=1;do{k*=num%10;num/=10;}while(num);return (k);}void main(){ unsigned n=26;printf("%d\n",fun6(n));}4.#includevoid fun(int n,int *s){ int f1,f2=1;if(n==1)*s=1;else{fun(n-1,&f1); *s=f1+f2;}}void main(){ int x;fun(6,&x);printf("%d\n",x);}5.#includevoid main(){int a[5]={2,4,6,8,10},*p,**k;p=a;k=&pprintf("%d",*p++);printf("%d\n",**k);}6.#includeunion ee{ int a;int b;}*p,s[4];void main(){ int n=1,i;for(i=0;i<4;i++){ s[i].a=n;s[i].b=s[i].a+1;n+=2;}p=&s[0];printf("%d",p->a); printf("%d",++p->a); }7.#includefun3(int x){static int a=3;a+=x;return (a);}void main(){int k=2,n;n=fun3(k);printf("%d\n",n);}8.#includeint x,y,a=15,b=10; void num(){x=a-b;y=a+b;}void main(){int a=7,b=5;x=x+a;y=y-b;num();printf("%d,%d\n",x,y); }9.#includestatic struct st1{char name[10];char *addr;};static struct st2{char *pname;struct st1 s1;}s2={"England",{"Ann","London"}};void main(){printf("%s,%s\n",++s2.s1.addr,&s2.pname[3]); } 10.#includef(int num,int run){static int fact,i;if(run==0){fact=1;i=1;}fact*=i;if(++i<=num)f(num,1);return (fact);}void main(){int i=0;printf("f=%d\n",f(3,0)); }11.#include unsigned fun6(unsigned num) { unsigned k=1;do {k*=num%10;num/=10;}while(num);return (k);}void main(){unsigned n=26;printf("%d\n",fun6(n)); }12.#include increment(){static int x=0;x=x+1;printf("%d\n",x);}void main(){ increment();increment();increment();}13.#includevoid main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int k,s,i;float ave;for(k=s=i=0;i<10;i++){ if(a[i]%2!=0)continue;s+=a[i];k++;}if(k!=0){ave=s/k;printf("%d,%f\n",k,ave);}}14.#includevoid num(){int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;void main(){int a=17,b=15;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);}15.#define PR(a) printf("%d\t",a)#includemain(){int j,a[]={1,2,3,4,5,6,7,8,9,10},*p=a+4; for(j=4;j>0;j--)switch(j){default:PR(*p++);case 1:case 2: PR(*p--);break;case 3:PR(*(++p));}}16.#includeint a=123;void main(){extern a,b;printf("%d\t%d\n",a,b);{int a=3,b=2,c=1;c-=++b;b*=a+c;printf("%d\t%d\t%d\n",a,b,c); {int b=5,c=12;c/=b*2;a-=c;printf("%d,%d,%d\n",a,b,c); a+=--c;}}printf("%d,%d\n",a,b);}int b=456;17.#includestruct bb{ int x;char *y;struct bb*tp;}a[]={{1,"pascal",NULL},{3,"debug",NULL}};void main(){struct bb*p=a;char c,*s;s=++p->y; printf("%s\n",s);c=*p++->y; printf("%c\n",c);s=p->y++; printf("%s\n",s);}18.运行下列程序,输入为11,14,17,22,31,54,67,70,89,90时,请给出程序运行结果。