v1.0 可编辑可修改
选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)
第一部分:简单类题目( 50个题目,从中选择10,每题1分)
1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C) A.4 B.16 C.32 D.522
2.以下程序的输出结果(B)。
main( )
{ int x1=3, x2=0, x3=0;
if (x1=x2+x3)
printf("* * * *");
else printf("# # # #");
}
A.输出:* * * * B.输出:# # # #
C.存在语法错误 D.无输出结果
3.下面四个选项中,均是合法转义字符的选项是(A)。
A.'\'' '\\' '\n' B.'\' '\017' '\"'
C.'\018' '\f' 'xab' D.'\\0' '\101' 'xlf'
4.若有说明:int a=1,b=2,c=3,d=4;则表达式a A、4 B、3 C、2 D、1 5.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是(D)。 A. i&&j B.i<=j C.i||j+k&&j-k D.!((i 6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。则以下不能满足要求的表达式是(C)。 A.num%2= =1 B. !(num%2= =0) C.!(num%2) D.num%2 7.有以下程序 main() { int m=3,n=4,x; v1.0 可编辑可修改 x=-m++; x=x+8/++n; printf(“%d\n”,x); } 程序运行后的输出结果是 ( D ) 。 A.3 B.5 C.-1 D.-2 8.若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是 ( C ) 。A.a=9+b+c=a+9 B.a=9+b;c=a+9; C.a=(9+b,b++) D.a=9+b++=a+7 9.若有以下定义,若int m=7,n=12,则能得到值为3的表达式是 ( D ) 。 A.n%=(m%=5) B.n%=(m-m%5) C.n%=m-m%5 D.(n%=m)-(m%=5) 10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是 ( C ) 。 A.int x=y=z=5; B.int x,y,z=5; C.int x=5,y=5,z=5; D.x=5,y=5,z=5; 11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( C ) 。A.abs(x-y)<10 B.x-y>-10&&x-y<10 C.(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<100 12. 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是( D )。 A 552 B 264 C 144 D -264 13 以下叙述不正确的是( D ) A)一个C源程序可由一个或多个函数组成 B)一个C源程序必须包含一个main函数 C)C程序的基本组成单位是函数 D)在C程序中,注释说明只能位于一条语句的后面 14 下关于运算符优先顺序的描述中正确的是( C )。 A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 15 下列程序的输出结果是( C ) main( ) { int a=7,b=5; printf("%d\n",b=b/a); } A 5 B 1 C 0 D不确定值 16 printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式(B) A) 从左起输出该字串,右补空格 B) 按原字符长从左向右全部输出 C) 右对齐输出该字串,左补空格 D) 输出错误信息 17. 以下叙述正确的是( C ) A. 在C程序中,main函数必须位于程序的最前面 B. C程序的每行中只能写一条语句 C. C语言本身没有输入输出语句 D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误 18. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B ) A. 7 B. 8 C. 6 D. 2 19. 下面不正确的字符串常量是( A )·················· A. 'abc' B. "1212" C. "0" D. "" 20. 已知各变量的类型说明如下: int i=8,k,a,b; unsigned long w=5; double x=,y=; 则以下符合C语言语法的表达式是( A ) A. a+=a-=(b= 4)*(a=3) B. a=a*3=2 C. x%(-3) D. y=f1oat(i) 21. 若有说明语句:char c='\72'则变量c描述正确的是( A ) A. 包含1个字符 B. 包含2个字符 C. 包含3个字符 D. 说明不合法,c的值不确定 22. 已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若输入12345 78(回车),则x 的值为 ( B ) A. 12345 B. 123 C. 45 D. 345 23. 能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( C ) A. (x>=1) && (x<=10) && (x>=200) && (x<=210) B. (x>=1) || (x<=10) || (x>=200) || (x<=210) c. (x>=1) && (x<=10) || (x>=200) && (x<=210) D. (x>=1) || (x<=10) && (x>=200) || (x<=210) 24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A) A. 0 B. 1 C. 2 D. 3 25.在if(x)语句中的x与下面条件表达式等价的是:(A) A) x!=0 B) x==1 C) x!=1 D) x==0 26、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为(A) A、D B、E C、一个不确定的值 D、C 27. 已知x=3、y=2,则表达式 x*=y+8的值为( C ) A)3 B)2 C)30 D)10 28. 设x为int型变量,则执行以下语句后,x的值为( B )。 x=10;x+=x- =x-x; A)10 B)20 C)40 D)30 29 若有以下类型说明语句:char a; int b; float c; double d; 则表达式a*b+d-c的结果类型为( D ) A.float B.char C.int D.double 30 若二维数组a有m列,则在a[i][j]前的元素个数为( B ) A)j*m+i B) i*m+j C)i*m+j-1 D) i*m+j+1 31 对for(表达式1;;表达式3)可理解为( B ) A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3) C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3) 32 以下描述不正确的是( C )。 A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成B.while循环是先判断表达式,后执行循环语句 C.do-while 和for循环均是先执行循环语句,后判断表达式 D.for、while 和do-while循环中的循环体均可以由空语句构成 33.下列程序段的运行结果是( C )。 int n=0; while(n++<=3); printf(“%d”,n); A 3 B 4 C 5 D 有语法错误 34. 设int a=3,b=4,c=5;,下列表达式的值不为1的是( A )。 A)a+b>c&&b==c B)a||b+c&&b-c C)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/2 35. 有以下程序: #include <> void main ( ) { int a=1,b=2,m=0,n=0,k; k=(n=b>a)||(m=a printf ("%d,%d\n",k,m); } 程序运行后的输出结果是( C )。 A)0,0 B)0,1 C)1,0 D)1,1 36、以下能正确进行字符串赋值操作的是( D ) A、char s[5]={"ABCDE"}; B、char s[5]={'A', 'B', 'C', 'D', 'E'}; C、char *s; *s="ABCDE"; D、char *s="ABCDE"; 37 下面程序的运行结果是(B) #include <> #include <> main() { char *s1="AbDeG"; char *s2="AbdEg"; s1+=2;s2+=2; printf("%d",strcmp(s1,s2)); } A) 正数 B) 负数C) 零D) 不确定的值 38若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为(A ) A) *(a[i]+j) B) (a+i) C) *(a+j) D) a[i]+j 39以下能对二维数组y进行初始化的语句是(B) A、static int y[2][ ]={{1,0,1}, {5,2,3}}; B、static int y[ ][3]={{1,2,3}, {4,5,6}}; C、static int y[2][4]={{1,2,3}, {4,5} , {6}}; D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}}; 40 以下printf语句的输出结果是(B) printf("%d\n", strlen("school"); A、7 B、6 C、存在语法错误 D、不定值 41 不能把字符串:Hello!赋给数组b的语句是( B)。 A. 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!"; 42 .设有定义:int a[10],*p=a+6,*q=a;,则下列运算哪种是错误的 ( C ) A p-q B p+3 C p+q D p>q 43. 下列描述中不正确的是(C) A)字符型数组中可以存放字符串 B)可以对字符型数组进行整体输入、输出 C)可以对整型数组进行整体输入、输出 D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值 44 以下对指针变量的操作中,不正确的是(D) A、int a, *p, *q; p=q=&a; B、int a=6, *p, *q=&a; p=q; C、int a=b=6, *p; p=&a; b=*p; D、int a, *p, *q; q=&a; p=*q; 45. 给出以下定义 char x[ ]="abcdefg"; char y[ ]={'a','b','c','d','e','f','g'}; 则正确的叙述为( C )。 A)数组x和数组y等价 B)数组x和数组y的长度相同 C)数组x的长度大于数组y的长度 D)数组x的长度小于数组y的长度 46、设变量y为float类型,x为int类型,则以下能实现将y中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是( B ) A、y=(y*100+/ B、x=y*100+,y=x/ C、y=y*100+ D、y=(y/100+* 47 判断char型变量c1是否为大写字母的正确表达式是( C ) A、'A'<=c1<='Z' B、(c1>='A')&(c1<='Z') C、(c1>='A')&&(c1<='Z') D、('A'<=c1) AND ('Z'>=c1) 48若a为已知整型变量,则对指针变量p的正确说明和初始化为( B )。 A.int *p=a; B.int *p=&a; C.int *p=*a; D.int &p=&a; 49 下列条件语句中,功能与其它语句不同的是( D )。 A.if(a) printf(“%d\n”,x);else printf(“%d\n”,y); B.if(a= =0) printf(“%d\n”,y);else printf(“%d\n”,x); C.if(a!=0) printf(“%d\n”,x);else printf(“%d\n”,y); D.if(a=0) printf(“%d\n”,x);else printf(“%d\n”,y); 50. 若有语句:char *line[5];,以下叙述中正确的是( A )。 A)定义line是一个指针数组,每个数组元素是一个基类型为char的指针变量 B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组 C)定义line是一个指针数组,语句中的*号称为间址运算符 D)定义line是一个指向字符型函数的指针 第二部分:中等难度题目(24个题目,从中选择8个,每题分共 12分) 1 设有声明语句:int a=1,b=0;则执行以下语句后输出:(B) switch (a) { case 1: switch (b) { case 0: printf("**0**");break; case 1: printf("**1**");break; } case 2: printf("**2**");break; } A)**0** B)**0****2** C)**0****1****2** D)有语法错误 2 若有如下程序段,其中s,a,b,c均已定义为整型变量,且a、c均已赋值 s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是( B )。 A.s=a+b; B.s=a+c; C.s=s+c; D.s=b+c; 3 . 若有程序段: for (m=1;m<=100;m++) { scanf("%d",&y); if(y<0) continue; printf("%3d",m); } 正确的描述是( D )。 A 当y<0时整个循环结束 B y>=0时什么也不输出 C printf函数永远也不执行 D 最多允许输出100个非负整数 4. 若有程序段如下: a=b=c=0;x=35; if(!a)x--; else if(b);if(c)x=3; else x=4; 执行后,变量x的值是 ( B ) A.34 B.4 C.35 D.3 5. 有以下程序: #include <> void main( ) { int i=0,s=0; for(; ;) { if(i==3||i==5)continue; if(i==6) break; i++; s+=i; }; printf("%d\n",s); } 程序运行后的输出结果是( D )。 A)10 B)13 C)21 D)程序进入死循环 6 下面程序段是输出两个字符串中对应位置相等的字符,横线处应该是( A ) char x[]=”programming”; char y[]=”Fortran”; int i=0; while(x[i]!=’\0’ && y[i]!=’\0’) v1.0 可编辑可修改 if(x[i]==y[i]) printf(“%c”, ); else i++; A) x[i++] B) y[++i] C) x[i] D) y[i] 7. 阅读以下程序: #include <> void main() { int x; scanf ("%d",&x); if (x--<5) printf("%d",x); else printf("%d",x++); } 程序执行后,如果从键盘上输入5,则输出结果是( B ) A)3 B)4 C)5 D)6 8 int fun(char *a,char *b) { while((*a!='\0')&&(*b!='\0')&&(*a==*b)) { a++;b++; } return(*a-*b); } 该函数的功能是___D___。 A)计算a和b所指字符串的长度之差 B)将b所指字符串连接到a所指字符串中 C)将b所指字符串连接到a所指字符串后面 D)比较a和b所指字符串的大小 9. 有如下程序段: char str[14]={"I am "}; strcat(str, "sad !"); scanf("%s", str); printf("%s", str); 当输入为happy! (A)I am sad! (B)happy! (C)I am happy! (D)happy!ad! 10. 以下程序的输出结果是( C )。 #include <> #include <> void main( ) { char b[30]; strcpy (&b[0],"CH"); strcpy (&b[1],"DEF"); strcpy (&b[2],"ABC"); printf ("%s\n",b); } A)CHDEF B)DEFABC C)CDABC D)CHABC 11. 下面程序的输出结果为( A )。 #include <> void main( ) { int a[3],i,j,k=2; for(i=0;i<3;i++) a[i]=0; for(i=0;i for(j=0;j a[j]=i*j; printf("%d\n",a[2]); } A)0 B)1 C)2 D)3 12. 以下程序: #include <> void main( ) { int aa[3][3]={{2},{4},{6}}, i,*p=&aa[0][0]; for(i=0;i<2;i++) { if(i ==0) aa[i][i+1]=*p+1; else ++p; printf("%d",* p); } printf("\n"); } 其输出结果是( A ) A)23 B)26 C)33 D)36 13. 下面程序的输出结果是( B )。 #include <> void main( ) { int i,j,k; char str[5]; for(i=0;i<5;i++)str[i]='A'; k=4; for(i=0;i for(j=0;j str[j]=str[i]+32; printf("%c\n",str[k]); } A)a B)A C)B D)不确定的值 14. 下列程序的输出结果为( B )。 #include <> void main() { int k=0,i,s[ ]={1,-9,7,2,-10,3}; for (i=0;i<6;i++) if (s[i]>s[k]) k=i; printf("\n%d\n",k); } (A)4 (B)2 (C)3 (D)1 15. 以下程序的输出结果是( C )。 #include <> void main( ) { char a[10]={'1','2','3','4','5','6','7','8','9',0},*p; int i; v1.0 可编辑可修改 i=8; p=a+i; printf ("%s\n",p-3); } A)6 B)'6' C)6789 D)789 16.有以下程序 #include<> void main() { int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2; printf("%d\n", *p + *q); } 程序运行后的输出结果是( B )。 A)16 B)10 C)8 D)6 17.有以下程序 #include<> void main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i; for(i=0;i<3;i++) printf("%d",a[1][i]); } 程序运行后的输出结果是( D ) A)012 B)123 C)234 D)345 18. 有以下程序 #include<> void main() { int p[8]={11,12,13,14,15,16,17,18},i=0,j=0; while(i++<7) v1.0 可编辑可修改 if(p[i]%2) j+=p[i]; printf("%d\n",j); } 程序运行后的输出结果是( C )。 A)42 B)45 C)56 D)60 19.有以下程序 void sum(int *a) { a[0]=a[1];} main( ) { int aa[10]={1,2,3,4,5,6,7,8,9,10},i; for(i=2;i>=0;i--) sum(&aa[i]); printf("%d\n",aa[0]); } 执行后的输出结果是 ( A ) A. 4 B. 3 C. 2 D. 1 20. 以下程序运行后,输出结果是( A )。 #include <> int d=1; void fun (int p) { int d=5; d+=p++; printf("%d",d); } void main( ) { int a=3; fun(a); d+=a++; printf("%d\n",d); } A 84 B)99 C)95 D)44 第三部分:较难题目(5 个题目,从中选择4个,每题2分)1. 有以下程序 #include <> void main() { int i,test ,p[17],head; for(i=0;i<16;i++) p[i]=i+1; p[16]=0; test=0; while(test!=p[test]) { for(i=1;i<3;i++) { head=test; test=p[test]; } p[head]=p[test]; test=p[head]; } printf("\n%5d",test); } A)1,2,3 B)2,3,4 C)10 D)4 2.有以下程序 #include <> void main() { char ch[2][5]={"693","825"},*p[2]; int i,k,j,s=0; for(i=0;i<2;i++) p[i]=ch[i]; for(i=0;i<2;i++) for(j=0;p[i][j]>='0'&&p[i][j]<='9';j+=2) s=10*s+p[i][j]-'0'; printf("%d\n",s); } A)6385 B)22 C)33 D)693825 3.有以下程序 #include <> void f (int *x,int *y) { int t; t=*x;*x=*y;*y=t; } { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;q=&a[7]; while(p { f (p,q); p++;q--; } for (i=0;i<8;i++) printf("%d,",a[i]); } (A)8,2,3,4,5,6,7,1, (B)5,6,7,8,1,2,3,4, (C)1,2,3,4,5,6,7,8 (D)8,7,6,5,4,3,2,1, 4. 以下程序的输出结果是。 #include <> int x=3; void incre( ) { static int x=1; x*=x+1; printf("%d ",x); } void main( ) { int i; for (i=1;i } A)3 3 B)2 2 C)2 6 D)2 5 5.以下程序 #include <> #include <> void f(char *s, char *t) { char k; k=*s; *s=*t; *t=k; s++; t--; if (*s) f(s, t); } void main() { char str[10]="abcdefg", *p; p=str+strlen(str)/2+1; f(p, p-2); printf("%s\n",str); } 程序运行后的输出结果是____B__。 A)abcdefg B)gfedcba C)gbcdefa D)abedcfg 第二部分:填空题(共5题,每题2分,共10分) A卷部分 1、如 float x=; int a; a=4*x+(int)x; 则a的值为_____21_______。 2、下面程序的输出结果为 ___CDEFEF_________ char b[]="CDEF"; main() { char *chp ; for (chp=b;*chp ;chp+=2) printf("%s",chp); printf("\n"); } 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#include <> main() { int a,b; scanf("%d%d",&a,&b); printf("a=%d,b=%d\n",a,b); a= ①; b= ②; a= ③; printf("a=%d,b=%d\n",a,b); } 【】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include <> double pi(long n) { double s=; long i; for(i=1;i<=n;i++) s=s+ ①; return( ②); } 【】下面的程序的功能是求一维数组中的最小元素。 findmin(int *s,int t,int *k) { int p; for(p=0,*k=p;p C语言程序设计试题1 一、单项选择题 1.C语言规定,在一个源程序中main函数的位置______d___ 。 A.必须在最开始B.必须在最后 C.必须在预处理命令的后面D.可以在其他函数之前或之后 2.以下选项中,_________d__ 是C语言关键字 A.printf B.include C.fun D.default 3.已知有声明"int a=3,b=4,c;",则执行语句"c=1/2*(a+b);"后,c的值为____a_ 。 A.0 B.3 C.3.5 D.4 4.设指针变量占4个字节的内存空间,若有声明"char *p="123";int c;",则执行语句 "c=sizeof(p);"后,c的值为__d__ A.1 B.2 C.3 D.4 5.已知有声明"int a=3,b=4;",下列表达式中合法的是_d___。 A.a+b=7 B.a=|b| C.a=b=0 D.(a++)++ 6.已知有声明"char s[20]="Hello";",在程序运行过程中,若要想使数组s中的内容修改为"Good",则以下语句中能够实现此功能的是___d_。 A.s="Good"; B.s[20l="Good"; C.strcat(s,"Good"); D.strcpy(s,"Good"); 7.已知有声明"int a[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};",若需要引用值为12的数组元素,则下列选项中错误的是_a___ 。 A.*(a+2)+3 B.*(*(a+2)+3) C.*(a[2]+3) D.a[2][3] 8.已知有声明"int n;float x,y;",则执行语句"y=n=x=3.89;"后,y的值为_b___ 。 A.3 B.3.0 C.3.89 D.4.0 9.已知有声明"int a=12,b=15,c;",则执行表达式"c=(a||(b-=a))"后,变量b和c的值分别为 __b__。 A.3,1 B.15,12 C.15,1 D.3,12 10.下面的函数定义正确的是_____d________ A)float fun (float x ; float y) {return x*y;} B)float fun (float x,y) {return x*y;} C)float fun (x,y) {int x,y;return x*y;} D)int fun (int x, int y) {return x*y;} 11.某程序需要使用一个代表常数3.14的符号常量名P,以下定义中正确的是_d___。 A.#define P 3.14; B.#define P(3.14) C.#define P=3.14; D.#define P 3.14 12.下列四个选项中,属于C语言关键字的是__c__ 。 A.Float B.single C.double D.real 13.已知某编译系统中signed int类型数据的长度是16位,该类型数据的最大值是_D___。 A.32767 B.32768 C.127 D.65535 导出题库试题(1~100) 共计104道试题 一、程序填空答案(104题) 【程序填空】 1功能:求两个非负整数的最大公约数和最小公倍数。 【1】r != 0 或r 【2】r=m%n 或r=m-m/n*n 【3】n 【4】gcd,lcm 或n,lcm 2功能:下面的程序是求1!+3!+5!+……+n!的和。 【1】s=0 【2】i+=2 或i=i+2 或i++,i++ 【3】j<=i 或i>=j 或jj 【4】f= f * j 3功能:将一个字符串中下标为m的字符开始的全部字符复制成为另 一个字符串。 【1】p1= str1 + m 【2】*p2++=*p1++ 或*(p2++)=*(p1++) 或*p2=*p1,p2++,p1++ 或*p2=*p1++,p2++ 或*p2++=*p1,p1++ 【3】*p2='\0' 或*p2=0 或*p2=NULL【4】strcopy(str1,str2,m) 4功能:以下程序是用选择法对10个整数按升序排序。 【1】#define N 10 【2】k=I 【3】j C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后( #include 三、程序填空题 导读:在程斥填空题中,已经给出了程序的主干,读者首先要理解程序的思路, 再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步堂握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上己经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而白己编写程序乂不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 ttinclude for(i=0; i<10; i++) scanf &a[i]); findmin(a, 10, k); printf ("%d, %d\n", *k, a L*kJ); } 【3.4】下面程序的功能是计算1-3+5-7+……-99+101的值。 main() { int i, s=0: for(i=l; i<=101: i+=2) {①; s二s+t: ②; } printf ("%d\n", s); } [3.5]有以下程序段: s=l. 0; for(k=1: k<=n: k++) s=s+l. 0/(k*(k+1)); printf ("%f\n", s); 填空完成下述程斥,使之与上述程序的功能完全相同。 s=0. 0: ①; k=0; do { s二s+d; ②; d=1.0/(k*(k+l)); }while(③); printf ("%f\n", s); [3.6]下而程用的功能是从键盘上输入若干学生的学习成绩,统计并输出最高成绩和最低成绩,当输入为负数时结束输入。 main () ;、float x, amax, amin; scanf &x); amax=x: amin=x; 指针 一单项选择题(每题2分,共40分) 1 以下叙述中错误的是_B__。 A 在程序中凡是以“#”开始的语句行都是预处理命令行 B 预处理命令行的最后不能以分号表示结束 C #define MAX是合法的宏定义命令行 D C程序对预处理命令行的处理是在程序执行的过程中进行的 2 若程序中有宏定义行:#define N 100 ,则以下叙述中正确的是__B_。 A 宏定义行中定义了标识符N的值为整数100 B 在编译程序对C源程序进行预处理时用100替换标识符N C 对C源程序进行编译时用100替换标识符N D 在运行时用100替换标识符 3 若有如下宏定义: #define N 2 #define y(n) ((N+1)*n) 则执行下列语句:z=4*(N+y(5));后的结果是_B__。 A 语句有错误 B z值为68 C z值为60 D z值为180 4 以下程序运行后的输出结果是_A__。 #define F(X,Y) (X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } A 12 B 15 C 16 D 20 5 以下程序运行后的输出结果是_C__。 #define f(x) (x*x) main() { int i1,i2; i1=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } A 64,28 B 4,4 C 4,3 D 64,64 6 若已定义a为int型变量,则__D_是对指针变量p的正确说明和初始化。 A int p=&a; B int *p=a; C int *p=*a; D int *p=&a; 7 已知下列说明语句: static int a[]={2,4,6,8} static int *p[]={a,a+1,a+2,a+3}; int **q; q=p; 则表达式**(q+2)的值是_A__。 A 6 B 2 C 4 D 8 8 下面是一个初始化指针的语句:int *px=&a;,其中指针变量的名字应该__C_。 A *px B a C px D &a 9 若指针px为空指针,则_B__。。 面向对象程序设计期末综合练习二(填空题) 填空题 1.C++ 语言是在 _________语言的基础上发展起来的。 2.C++ 语言的编译单位是扩展名为 __________的 __________文件。 3.行尾使用注释的开始标记符为 __________ 。 4.多行注释的开始标记符和结束标记符分别为__________ 和 __________。 5.用于输出表达式值的标准输出流对象是_________。 6.用于从键盘上为变量输入值的标准输入流对象是________。 7.一个完整程序中必须有一个名为 ________的函数。 8.一个函数的函数体就是一条 _________语句。 9.当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 10.在 C++程序中包含一个头文件或程序文件的预编译命令为__________。 11.程序中的预处理命令是指以______字符开头的命令。 12.一条表达式语句必须以 ______ 作为结束符。 13.在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是 ________定义的头文件。 14.使用 #include 命令可以包含一个头文件,也可以包含一个______文件。 15.一个函数定义由 ________和 ________两部分组成。 16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 17. C++头文件和源程序文件的扩展名分别为______和 ______。 18.程序文件的编译错误分为 ________和 ________两类。 19.当使用 _______保留字作为函数类型时,该函数不返回任何值。 20.当函数参数表用 ______保留字表示时,则表示该参数表为空。 21 .从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______ 个参数。 22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位置移动到 ________的开始位置。 23.假定 x=5,y=6,则表达式 x++*++y 的值为 __________ 。 24.假定 x=5,y=6,则表达式x--*--y的值为__________。 25.假定 x=5,y=6,则执行表达式 y*=x++ 计算后, x 和 y 的值分别为 __________和 __________ 。 26.假定 x=5,y=6,则执行表达式 y+=x-- 计算后, x 和 y 的值分别为 __________和 __________ 。 27.C++ 常数 0x145 对应的十进制值为 __________。 28.C++ 常数 0345 对应的十进制值为 __________ 。 29.十进制常数 245 对应的十六进制的 C++表示为 __________。 30.十进制常数 245 对应的八进制的 C++表示为 __________ 。 31.signed char类型的值域范围是________至__________之间的整数。 32.int和float类型的数据分别占用_________和__________个字节。 33.float和double类型的数据分别占用_________和________个字节。 34.bool和char类型的数据分别占用_________和________个字节。 35.unsigned short int和int类型的长度分别为_________和________。 C语言程序设计试题(第1套) 一.单项选择题(30分,每题2分) 1.用C语言编写的代码程序______。 A、可立即执行 B、是一个源程序 C、经过编译即可执行 D、经过编译解释才能执行 2. C语言中用于结构化程序设计的三种基本结构是______。 A、顺序结构、选择结构、循环结构 B、if、switch、break C、for、while、do-while D、if、for、continue 3. 以下选项中合法的实型常数是______。 A、B、E-3 C、.2E0 D、 4. 假定x和y为double型,则表达式x=2,y=x+3/2的值是______。 A、B、3 C、D、 5. ch是字符型变量,下面不正确的赋值语句是______。 A、ch = 65; B、ch="a"; C、ch ='\ n'; D、ch= 9+ '0'; 6. 下列有关C语言程序书写格式的说法哪个是错误的 A、C程序的书写格式比较自由,一个语句可以占多行,一行也可以有多个语句。 B、C语句必须要有分号。 C、C语言程序的标识符必须使用小写字母。 D、用{ } 括起来的部分,通常表示了程序的某一层次结构,称为块。 7.下面程序段所表示的数学函数关系是______。 x= -1; if (a!=0) if (a>0) x=1; else x=0; -1 (a<0) 1 (a<0) A、x= 0 (a=0) B、x= -1 (a=0) 1 (a>0) 0 (a>0) 0 (a<0) -1 (a<0) C、x= -1 (a=0) D、x= 1 (a=0) 1 (a>0) 0 (a>0) 8. 以下关于do-while循环的不正确描述是______。 A) do-while的循环体至少执行一次 B) do-while的循环体可以是复合语句 C) 在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作 D) do-while循环由do开始,用while结束,在while(表达式)后面不能写分号 9. 以下程序执行后sum的值是______。 A) 15 B) 14 C) 不确定 D) 0 main() { int i , sum=0; for(i=1;i<6;i++) sum+=i; printf("%d\n",sum); } 10.若有说明语句:int a[][3]={1,2,3,4,5,6}; 则a数组第一维的大小是。 A. 1 B. 2 C.3 D. 无确定值 11. C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是______。 A、float型 B、long型 C、int型 D、double型 12.下面正确的函数定义形式为 A、double fun(int x;int y) B、double fun(int x,int y); C、double fun(int x,y) D、double fun(int x,int y) 13.以下程序运行后,输出结果是______。 #define ADD(x) x+x 一、填空共219题 第1题题号:422 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是【1】 . Struct stud { char num[6]; int s[4]; double ave; } a,*p; 答案: 1). 22 第2题题号:533 设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是【1】. for (x=0,y=0;y!=123&&x<3;x++) scanf ("%d",&y); 答案: 1). 3 第3题题号:496 静态变量和外部变量的初始化是在【1】阶段完成的,而自动变量的赋值是 在【2】时进行的. 答案: 1). 编译 2). 函数调用 第4题题号:96 已知a=13,b=6, a&b的十进制数值为【1】. 答案: 1). 4 第5题题号:398 程序段int k=10; while(k=0) k=k-1循环体语句执行【1】次. 答案: 1). 0 第6题题号:651 设w=5;w+= -2;则w的值为【1】. 答案: 1). 3 第7题题号:258 下面程序段的输出结果是【1】. int a=12; a=a&0377;pritnf("%d\n",a); 答案: 1). 12 第8题题号:457 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&&b+c/2 后,t的值是【1】. 答案: 1). 1 第9题题号:402 设a取二进制数00101101,若想通过a^b运算使a的高4位取反,低4位不变,则b的 二进制数是【1】. 答案: 1). 11110000 第10题题号:311 若所用变量均已正确定义,则执行下面程序段后的值是【1】. for(i=0 ; i<2 ; i++ ) printf("YES"); printf("\n"); 答案: 1). YESYES 《C语言程序设计》模拟试卷一 一、单项选择题(每题2分,共30分) 1、下列有关C语言的叙述中错误的是()。 A) C语句必须以分号结束 B) 任何一个C程序中有且只有一个主函数 C) 复合语句在语法上可被看作一条语句 D) C程序中对数据的任何操作都可由运算符实现 2、以下不能定义为用户标识符的是()。 A) MAIN B) _HJ C) 2ong D) LINE1 3、下列符号中用来表示C语言中的回车换行的是()。 A) \r B) \n C) \b D) \t 4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。 A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 1 5、已知ch为字符型变量,下面表达式中正确的是()。 A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ” 6、以下能正确定义一维数组的是()。 A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”; C) char a[ ]=”012345”;D) char a[5]={0,1,2,3,4,5}; 7、以下语句中能正确定义变量并赋初值的是()。 A) char c=65; B) float f=f+1.1; C) double x=12.3e3.6; D) int m=n=2.0; 8、在执行下列程序时输入:1357924,则程序的运行结果为()。 main( ) { int x, y; scanf(“%2d%2d”,&x,&y); printf(“%2d”,x*y); } A) 13 B) 1357 C) 74 D) 741 9、执行下列程序段后输出的结果是()。 一.填空 1. 每个C程序都必须有且仅有一个________ 函数。 2. C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3. 软件是程序,以及______、使用和维护所需要的所有文档。 4. 国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5. 程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6. C语言是由________组成的。 7. C语言的函数可分为主函数main、标准库函数和_________。 8. 一个函数是由两部分组成的,即:________和函数体。 9. 编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10. 程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作 的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自动化(OA)、管理信息系统(MIS)、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11. 机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12. 与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对 象,也可以用标号和符号来代替地址、常量和变量。 13. 在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14. C程序的执行均是由执行_________开始。 15. 函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C 语句 组成的执行部分。 16. C语言程序中一条简单语句是以________字符作为结束符的。 17. C语言是结构化、________的程序设计语言。 18. 由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19. 用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以 说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20. 2012-2013学年二学期C语言期末考试试卷(A卷)班级:___________学号:___________姓名:___________得分:___________ 题号一二三四五六七八九十成绩复核得分 阅卷 题目部分,(卷面共有24题,100分,各大题标有题量和总分) 一、填空题(24小题,共100分) 1. 以下程序的功能是计算下面函数的值。请填空。 #include 3. 已定义一个含有30个元素的数组s,函数fav1的功能是按顺序分别赋予各元素从2开始的偶数,函数fav2则按顺序每五个元素求一个平均值,并将该值存放在数组w中。请填空。 #define SIZE 30 fav1(float s[]) { int k,i; for(k=2,i=0;i 三、程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【3.1】下面程序的功能是不用第三个变量,实现两个数的对调操作。 #include 【3.2】下面程序的功能是根据近似公式:π2/6≈ 1/12+1/22+1/32+ …… +1/n2,求π值。 #include C语言程序设计的试题及答案 C语言程序设计的试题及答案C语言程序设计的试题及答案第一章基础知识 一、填空 1.每个C程序都必须有且仅有一个________函数。 2.C语言程序开发到执行通常要经过6个阶段即编辑、预处理、________、链接、加载和执行。 3.软件是程序,以及______、使用和维护所需要的所有文档。 4.国标中规定:“计算机程序是按照具体要求产生的适合于计算机处理的_________”。 5.程序设计语言按照书写形式,以及思维方式的不同一般分为低级语言和________两大类。 6.C语言是由________组成的。 7.C语言的函数可分为主函数ain、标准库函数和_________。 8.一个函数是由两部分组成的,即:________和函数体。 9.编译是将C语言所编写的源程序________成机器代码,也称为建立目标代码程序的过程。 10.程序是由某种程序设计语言编制出来,体现了编程者的控制思想和对计算机执行操作的要求。不同的任务功能,就会需求不同的软件程序,如:控制计算机本身软硬件协调工作,并使其设备充分发挥效力,方便用户使用的系统软件程序,称为操作系统;而为办公自 动化、管理信息系统、人工智能、电子商务、网络互联等等应用而开发的软件程序,统称为_________。 11.机器语言是以__________形式表示的机器基本指令的集合,是计算机系统唯一不需要翻译可以直接识别和执行的程序设计语言。 12.与机器语言相比,使用汇编语言来编写程序可以用_______来表示指令的操作码和操作对象,也可以用标号和符号来代替地址、常量和变量。 13.在编译程序之前,凡以____开头的代码行都先由预处理程序预处理。 14.C程序的执行均是由执行_________开始。15.函数体即为包含在{}内的部分。它分为________和为完成功能任务由若干个C语句组成的执行部分。 16.C语言程序中一条简单语句是以________字符作为结束符的。 17.C语言是结构化、________的程序设计语言。 18.由于计算机硬件不能直接识别高级语言中的语句,因此,必须经过“_______程序”,将用高级语言编写的程序翻译成计算机硬件所能识别的机器语言程序方可执行。 19.用高级语言编写的程序需翻译成计算机硬件所能识别的机器语言程序方可执行。所以说,用高级语言进行程序设计,其编程效率高,方便易用,但_______没有低级语言高。 20.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。 二、程序填空题(每空2分,共20分) 1.下列程序是求100之内的能被7整除的自然数之和。请在横线处填入适当的语句,将程序补充完整。 #include int i,j; for(i=0; (1) ;i++) { j=i*10+6; if( (2) ) continue; else cout< 单项选择题 (002) 阅读程序题 (018) 程序填空题 (039) 编写程序题 (070) 一、单项选择题 导读:单项选择题要求从给出的四个备选答案中,选出一个最符合题意的答案。本类习题主要检查对C语言基本概念的掌握情况,读者可根据学习进度选做部分习题。在完成习题的过程中,不但要选出正确的答案,而且要清楚不正确的选项错在何处,以加深对概念的理解。对于掌握不准的问题,应该通过上机实验来检验。 【1.1】以下不正确的C语言标识符是____。 A) int B) a_1_2 C) ab1exe D) _x 【1.2】以下是正确的C语言标识符是____。 A) #define B) _123C) %d D) \n 【1.3】下列四组字符串中都可以用作C语言程序标识符的一组是。 ??? A) print B) i\am C) Pxq D) str_l ??? _3d one_half My->book Cpp ??? oodbs tart$it line# pow ??? aBc 3pai His.age while 【1.4】下面各选项组中,均是C语言关键字的组是。 A) auto,enum,include B) switch,typedef,continue C) signed,union,scanf D) if,struct,type 【1.5】下列不属于C语言关键字的是。 A) default B) register C) enum D) external 【1.6】C语言程序从main()函数开始执行,所以这个函数要写在____。 A) 程序文件的开始B) 程序文件的最后 C) 它所调用的函数的前面D) 程序文件的任何位置 【1.7】下列关于C语言的叙述错误的是____ A) 大写字母和小写字母的意义相同 B) 不同类型的变量可以在一个表达式中 C) 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型 D) 同一个运算符号在不同的场合可以有不同的含义 【1.8】在C语言中,错误的int类型的常数是。 A) 32768 (超过了范围) B) 0 C) 037 D) 0xAF 【1.9】执行语句printf("%x",-1);屏幕显示____。 A) -1 B) 1 C) –ffff D) ffff 【1.10】已知long i=32768;执行语句printf("%d",i);屏幕显示____。 A) -1 B) -32768C) 1 D) 32768 【1.11】已知long i=65539; 执行语句printf("%d",i);屏幕显示____。 A) 65539 B) -3 C) 3D) 程序不能执行 【1.12】在C语言中,整数-8在内存中的存储形式是。 A) 1111 1111 1111 1000B) 1000 0000 0000 1000 C) 0000 0000 0000 1000 D) 1111 1111 1111 0111 【1.13】C语言中字符型(char)数据在内存中的存储形式是____。 第1章 1.以下叙述不正确的是()。 A、C程序的基本组成单位是函数 B、在C程序中,注释说明只能位于一条语句的后面 C、一个C源程序必须包含一个main函数 D、一个C源程序可由一个或多个函数组成 2.C语言的注释定界符是()。 A、\* *\ B、{ } C、[ ] D、/* */ 3.C语言规定,在一个源程序中,main函数的位置()。 A、必须在最开始 B、必须在系统调用的库函数的后面 C、必须在最后 D、可以任意 4.一个C程序的执行是从()。 A、本程序文件的第一个函数开始,到本程序main函数结束 B、本程序的main函数开始,到main函数结束 C、本程序的main函数开始,到本程序文件的最后一个函数结束 D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 5.以下叙述中正确的是()。 A、C程序中注释部分可以出现在程序中任意合适的地方 B、分号是C语句之间的分隔符,不是语句的一部分 C、花括号“{“和”}”只能作为函数体的定界符 D、构成C程序的基本单位是函数,所有函数名都可以由用户命名 6.以下叙述正确的是()。 A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误 B、C语言本身没有输入输出语句 C、在C程序中,main函数必须位于程序的最前面 D、C程序的每行中只能写一条语句 7.C语言源程序的基本单位是()。 A、子程序 B、过程 C、函数 D、标识符 8.下列标识符中,不合法的C语言用户自定义标识符是()。 A、printf B、sin C、enum D、_ 9.下列四个选项中,均是C语言关键字的选项是()。 A、if struct type B、switch typedef continue C、signed union scanf D、auto enum include 10.以下叙述中错误的是() A、用户所定义的标识符应尽量做到"见名知意" B、用户所定义的标识符允许使用关键字 C、用户定义的标识符中,大、小写字母代表不同标识 D、用户所定义的标识符必须以字母或下划线开头 11.下列字符序列中,可用作C标识符的一组字符序列是()。 A、#md,&12x,month,student_n! B、D56,r_1_2,name,_st_1 C、S.b,sum,average,_above D、class,day,lotus_1,2day 12.下面四个选项中,均是不合法的用户标识符的选项是()。 A、_123 temp int B、A P_0 do C、b-a goto int D、float la0 _A 13.下列四组选项中,均不是C语言关键字的选项是()。 A、file IF type B、include scanf caseC语言程序设计程序填空题库及答案
C语言程序设计试题1
c语言程序填空题
C语言程序设计期末考试试题(含答案)
c语言程序填空题1
C语言程序设计习题集(3)
C语言程序设计期末练习填空题.docx
C语言程序设计试题第1套(山东建筑大学)
大学计算机C语言程序设计(填空题)
C语言程序设计模拟试题1附答案
C语言程序设计试题集与答案解析
C语言练习题填空题1
c语言程序填空题完整
C语言程序设计的试题及答案
C语言程序填空题-20分
C语言程序设计试题集及答案
C语言选择题(1-4章期末复习)