练习题
1. 以下对C程序的描述中正确的是( C )。
A) C程序总是从第一个定义的函数开始执行。
B) C程序总是从最后一个定义的函数开始执行。
C) C程序总是从main()函数开始执行。
D) C程序中的main()函数必须放在程序的开始部分。
2. 一个C程序的执行是从( A )。
A) 本程序的main函数开始,到main函数结束
B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C) 本程序文件的第一个函数开始,到本程序main函数结束
D) 本程序的main函数开始,到本程序文件的最后一个函数结束
3. 以下叙述正确的是( C )
A) 在对一个C程序进行编译的过程中,可发现注释中的拼写错误
B) 在C程序中,main函数必须位于程序的最前面
C) C语言本身没有输入输出语句
D) C程序的每行中只能写一条语句
4. 以下选项中正确的C语言常量是( C )。
A) 0xEfGh B) 'XYZ'
C) 12.34e5 D) '\5A'
5. 以下选项中,合法的C语言用户标识符是( D )。
A) b-a B) 5ab
C) int D) INT
6. 以下选项中,三种类型都是C语言的基本类型的是( C )。
A) int, long, real B) integer, short, double
C) int, float, char D) int, decimal, char
7.设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为( D )
A) float B) char C) int D) double
8. 设要定义n为整型变量,定义x为双精度实型变量,正确的语句是( C )。
A) int n, double x, B) int n, double x;
C) int n; double x; D) int n; double x,
9. 以下四项中,不合法的C语言用户标识符是( D )。
A) temp B) my_program
C) year2009 D) int
10.有以下程序,程序运行后的输出结果是( A )。
#include
void 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\n”,m);
}
A.1 B.2 C.3 D.4
11. 设有:int a=1,b=2,c=3,d=4,m=2,n=2;表达式(m=a>b)&&(n=c>d)的结果为( A )
A) 0 B) 1 C) 2 D) 3
12. 设int n; 对应“n为二位数(10至99)”的判断表达式是( B )。
A) 10<=n<=99 B) 10<=n && n<=99
C) 10<=n || n<=99 D) 10<=n, n<=99
13. 在C语言中,三种基本的语句结构是:( A )。
A) 顺序结构,选择结构,循环结构
B) 函数结构,选择结构,循环结构
C) 顺序结构,嵌套结构,循环结构
D) 递归结构,转移结构,循环结构
14. 设有如下语句int x,y; scanf("%d%d",&x,&y); 如果要使变量x得到数值11,变量y 得到数值22,正确的输入应是(□表示空格,↙表示回车)( D )。
A) x=11□y=22↙B) x=11↙y=22↙
C) 11,12↙D) 11□22↙
15. 设有定义char c;且c表示一个小写字母,结果为对应大写字母的表达式是( C )。
A) c - a + A B) c - A + a
C) c - 'a' + 'A' D) c - 'A' + 'a'
16. 以下四项中不合法的C语言常量是( A )。
A) 'xab' B) "x1f"
C) 0x1234 D) 2.1e3
17. 设char ch; 判断“ch为数字字符”的表达式是:( A )。
A) ch>='0' && ch<='9' B) ch>0 && ch<9
C) ch>='0' || ch<='9' D) ch>=0 || ch<=9
18. 有字符数组s[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};有语句a=strlen(s), a的值( A )。
A)1 B) 2 C) 5 D) 6
19. 以下能对二维数组a进行正确初始化的语句是:( B )。
A)int a[2][]={{1,0,1},{5,2,3}} B) int a[][3]={{1,2,3},{4,5,6}}
C)int a[2][4]={{1,2,3},{4,5},{6}} D)int a[][3]={{1,0,1,0} ,{5,2,3}}
20. 设int n,m; 使m为n的十进制百位数的语句是( C )。
A) m = n/100; B) m = n%100;
C) m = n/100%10; D) m = n%10/100;
21. 设int n; 判断“n为0”的表达式是( D )。
A) n=0 B) n!=0
C) !(n=0) D) n==0
22. 设float x,y; 使y为x的小数部分的语句是( C )。
A) y = (int)x; B) y = int(x);
C) y = x–(int)x; D) y = x–int(x);
23. 设有定义int a;判断a是一个偶数的表达式是( D )。
A) a==2*n B) a/2==0
C) a%2 D) a%2==0
24. 设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中的值为0的是( D )。
A)’x’&&’y’B) x<=y C) x||y+z&&y-z D) !((x 25. 若又说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是( B )。 A) 2 B) 3 C) 4 D) 不确定 26. 设有int n=10; 要求屏幕上显示“n=10”结果,正确的语句是( C )。 A) printf( n ); B) printf( "n=", n ); C) printf( "n=%d", n ); D) printf( "n=%d", &n ); 27. 以下程序的运行结果是( B ) main() { int a,b,d=241; a=d/100%9; b=(-1)&&(-1); printf(“%d,%d”,a,b); } A) 6,1 B) 2,1 C) 6,0 D) 2,0 28.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是( B ) if(x>y) z=x; x=y; y=z; A) x=10, y=20, z=30 B) x=20, y=30, z=30 C) x=20, y=30, z=10 D) x=20, y=30, z=20 29. 以下程序的运行结果是( C ) void main() { int m=5; if(m++>5) printf(“%d\n”,m); else printf(“%d\n”,m--); } A) 4 B) 5 C) 6 D) 7 30. 选择程序输出结果( D ) f(int b[ ],int m,int n) { int i,s=0; for(i=m;i s= s+b[i]; return s; } void main() {int x,a[ ]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A) 30 B) 15 C ) 18 D ) 22 31. 以下程序段( C ) x=-1; do{ x=x*x; } while(!x); A)是死循环 B)循环执行二次 C)循环执行一次 D)有语法错误 32. 以下( B )语句输出字符'a'的ASCII编码。 A) printf("%d",a); B) printf("%d",'a'); C) printf("%c",'a'); D) putchar(a); 33. 若有定义: int a=2,b=3,c=1; 则以下程序段的运行结果是( D )。 if(a>b) if(a>c) printf("%d,",a); else printf("%d,",b); printf("%d",c); A.3,1 B.2,1 C.3 D.1 34. 若i为整型变量,则以下循环执行次数是( B ) for(i=2;i==0;)printf("%d",i--); A)无限次 B)0次 C)1次 D)2次 35. 语句printf("%.1f,%d\n",10./4,10/8); 的输出是( B )。 A) 2.5,1.25 B) 2.5,1 C) 1,1.25 D) 2,1.25 36. 设int x,y,t; 能正确交换变量x与y值的语句序列是( C )。 A) x=y; y=x; B) t=y; x=t; y=x; C) t=x; x=y; y=t; D) x=t; y=x; t=y; 37. 设有定义float x=3.567,y; 赋值使y为3.6的语句是( A )。 A) y = (int)(10*x+0.5)/10.0; B) y = (int)(10*x)/10.0 C) y = (int)(10*x)/10.0 + 0.5 D) y = (%3.1f) x; 38.语句a=(3/4)+3%2;运行后,a的值为( B )。 A) 0 B)1 C)2 D)3 39.下列语句段的运行结果是( A )。 int a=1234;float x=56.789; printf("%3d,%4.2f\n",a,x); A) 1234,56.79 B) 1234 56.79 C) 1234,56.789 D) 1234 56.789 40. 设有double x; char s[50]; 输出双精度浮点数x和字符串s,正确的语句是( A )。 A) printf("%lf %s",x,s); B) printf("%ld %s",x,s); C) printf("%lf %s",&x,s); D) printf("%lf %s",x,s[50]); 41. 下面程序段的运行结果是( D ) char a[7]="abcdef"; char b[4]="ABC"; strcpy(a,b); printf("%c",a[5]); A)空格B)\0 C)e D)f 42. 设有int a,b; 满足以下判断的表达式是:( A )。 a是3的倍数,或者b不是5的倍数 A) a%3==0 || b%5!=0 B) a%3!=0 || b%5==0 C) a%3!=0 || b%5!=0 D) a%3==0 || b%5==0 43. 设有变量定义char str[80]; 下列( B )语句能将字符串“shanghai 2011”从键盘输入到数组变量str中。 A) printf("%s",str); B) gets(str); C) scanf("%s",str); D) puts(str); 44. 设int n; 下列选择中“结果恒为真”的表达式是( C )。 A) n=0 B) n!=0 C) n=1 D) n=n 45. 以下对二维数组a的正确说明是( C ) A)int a[3][]; B)float a(3,4); C)double a[1][4] D)float a(3)(4); 46. 判断字符串s1是否大于字符串s2,应当使用( D ) A)if(s1>s2) B)if(strcmp(s1,s2)) C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0) 47. 以下程序段运行时,若从键盘输入5,则运行结果是( D )。 int a,y=10; scanf("%d",&a); if (a>10) y=a+6; printf("%d\n",y+a); A)10 B)11 C)16 D)15 48. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式为(B ) A) 地址传递 B)单向值传递 C)由实参传给形参,再由形参传回给实参 D)由用户指定传递方式 49. ( A )是不正确的叙述。 A)注释说明只能位于一条语句的后面 B)C源程序的基本组成单元是函数 C)C源程序可由一个或多个函数组成 D)每条语句最后必须有一个分号 50. 若有定义:int k,i=2,j=4; 则表达式k=(++i)*(j--) 的值是( B )。 A) 8 B) 12 C) 6 D) 9 51. 下面叙述正确的是( D )。 A)每行最多只能写两条语句B)程序中必需含有自定义函数 C)main()函数必须位于源程序文件的开头D)所有语句都必须以分号";"结束 52. 设有int i=0; 下列语句的运行结果是( A )。 while (i<=6) { printf("%d",i); i=i+1; } A) 0123456 B) 012345 C) 01234 D) 0123 53. 设有int n=60; 下列语句的运行结果是( D )。 switch (n/10) { case 6: printf("@"); case 5: printf("#"); default: printf("$"); } A) @ B) #$ C) $ D) @#$ 54.若有说明语句:char c='\95'; 则变量c包含( A )个字符。 A)1 B)2 C.)3 D. 语法错误 55. 以下一维数组定义中,正确的是( A )。 A) int a[5] = { 1,2,3,4,5 }; B) int a[5] = 1,2,3,4,5; C) int a[1 to 5]; D) int a[]; 56. 若有定义:int x=1234,y=123,z=12;则语句printf("%4d+%3d+%2d", x, y, z);运行后的输出结果为(D)。 A. 123412312 B. 12341234123412341231231231212 C. 1234+1234+1234 D. 1234+123+12 57. 设有char ch; 下列语句的运行结果是( C )。 for(ch='B';ch<='F';ch++) printf(“%c”,ch); A) ABCDEFG B) ABCDEF C) BCDEF D) BCDEFG 58. 已知一个字符串的最大字符长度为8,要使用字符数组str存放该字符串,以下哪种定义是正确的:( A ) A) char str[9]; B) char str[8]; C) char str; D) char str(9); 59. 设有int a=70; 写出下列语句的运行结果:( A )。 if ( a>=60 ) if (a>=80) printf("Very Good"); else printf("Good"); else if (a>=40) printf("Bad"); else printf("Very Bad"); A) Good B) Very Good C) Bad D) Very Bad 60. 设有int i; 以下语句中,循环次数为100次的语句是( B )。 A) for ( i=0; i<=100; i++ ) B) for ( i=0; i<100; i++ ) C) for ( i=0; i<99; i++ ) D) for ( i=1; i<99; i++ ) 61. 下列运算符中,不属于关系运算符的是( D ). A) < B) > C) >= D) ! 62. 在字符串常用函数中,用于复制字符串的函数是( B )。 A) strlen B) strcpy C) strcat D) strcmp 63. 设有char str[80];则下列输入字符串的语句中正确的是( C )。 A) scanf("%s",&str); B) scanf("%s",str[80]); C) scanf("%s",str); D) scanf("%s",str[0]); 64. 若有以下的定义:int t[3][2];则 t数组最后一个元素是( D )。 A) t[3][2] B) t[2][3] C) t[2] D) t[2][1] 65. C语言中规定函数的返回值的类型是由( D ) A) return语句中的表达式类型所决定B) 调用该函数时的主调用函数类型所决定C) 调用该函数时系统临时决定D) 在定义该函数时所指定的类型所决定 66. 设有定义:int a[10]={6,7,8,9,10};正确的解释是( B )。 A) 将5个初值依次赋给a[1]至a[5] B) 将5个初值依次赋给a[0]至a[4] C) 将5个初值依次赋给a[6]至a[10] D) 将5个初值依次赋给a[5]至a[9] 67. 先用语句定义字符型变量c,然后要将字符a 赋给c,则下列语句中正确的是( A ). A) c='a'; B) c="a"; C) c="97"; D) C='97' 68. 以下字符串定义与赋值中,正确的是( D )。 A) char s[80]; s = {'A', 'B', 'C'}; B) char s[80]; s = "ABC"; C) char s[80] = {"A", "B", "C"}; D) char s[80] = "ABC"; 69. 设有下列变量说明与函数说明,则合法的函数调用语句是( B )。 int func( int a[], int n ); int a[10], n, x; A) func( a, n ) = x; B) x = func( a, n ); C) x = func( a[], n ); D) x = func( a[10], n ); 70.下列程序的输出结果为( A )。 void main() {int m=7,n=4; float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; printf("%f\n",x); } A:27.000000 B:27.500000 C:28.000000 D:28.500000 71. 下列选项中合法的函数说明语句是( A )。 A) double func( int a, int b ); B) double func( int a, b ); C) double func( a, int b ); D) double func( a, b ); 72.以下程序的运行结果是( B )。 void main() { int n='a'; switch(n) { case 'a': case 'b': printf("good "); break; case 'c': printf("pass "); case 'd': printf("warn "); default: printf("error "); } } A) error B) good C) error good D) warn 73. 有定义:int a=8,b=5,c;, 执行语句 c=a/b+0.4;后,c 的值为( B ) A)1.4 B)1 C)2.0 D)2 74. printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式( B ) A)从左起输出该字串,右补空格B)按原字符长从左向右全部输出 C)右对齐输出该字串,左补空格D)输出错误信息 75. 设有说明int n; char str[80];与函数调用:n=hex2dec(str); 则函数hex2dec正确的函数说明应该是: ( A )。 A) int hex2dec(char str[]); B) void hex2dec(char str[]); C) int hex2dec(char str); D) void hex2dec(char str); 76. 在c语言中while循环和do--while循环的主要区别是( B )。 A) do--while循环体内可以使用break语句,while循环体内不能使用break语句 B)do--while的循环体至少无条件执行一次,while的循环体不是 C)do--while循环体内可以使用continue语句,while循环体内不能使用continue语句 D) while的循环体至少无条件执行一次,do--while的循环体不是 77.以下程序的运行结果是( B )。 void main() { int sum = 0, item = 0; while(item < 5) { item++; sum = sum +item; if(sum= =5) break; } printf("%d\n",sum); } A) 10 B) 15 C) 5 D) 6 78. putchar()函数的功能是向终端输出( B )。 A. 多个字符 B. 一个字符 C. 一个实型变量值 D. 一个整型变量表达式 79.设有如下程序段:则执行该程序段后,s的值是( C )。 int a[3][3]={1,0,2,1,0,2,1,0,1},i,j,s=0; for(i=0;i<3;i++) for(j=0;j s=s+a[i][j]; A) 0 B)1 C)2 D)3 80. 若有定义:int a[3][4]={{1,2},{0},{1,2,3}};则a[1][1]的值为( A )。 A. 0 B. {1,2} C. 1 D. 3 81. C 语言程序中必须有的函数是( B ). A)#include "stdio.h" B)main C)printf D)scanf 82.以下程序的运行结果是( A )。 void fun(int array[4][4]) { int j; for(j=0;j<4;j++) printf("%2d",array[2][j]); printf("\n"); } main() { int a[4][4]={0,1,2,0,1,0,0,4,2,0,0,5,0,4,5,0}; fun(a); } A)2 0 0 5 B) 1 0 0 4 C)0 1 2 0 D) 0 4 5 0 83.如下fun函数的类型应该是( C )。 fun(float x) {double y; int z ; y=x * x ; z=(int)y ; return(z); } A)void B)double C)int D)float 84. 在C语言中,表示结束当前函数的语句是 ( A )。 A) return语句B) break语句C) continue语句D) end语句 85.以下程序运行后屏幕输出为( B )。 #include int f(int x,int y) { return(x+y); } main() { int a=2,b=3,c; c=f(a,b); printf("%d+%d=%d\n",a,b,c); } A)0 B) 2+3=5 C) 2+3=0 D) 3+2=5 86. 在C语言中,表示循环的一组语句是( A )。 A) for, while, do-while B) for, while, do-until C) for, loop, do-loop D) for, for each, while 87.若有定义:char a[]="abcdef";char b[]="xyz";则以下程序段运行后屏幕输出为( B)。strcpy(a,b); printf("%c",a[2]); A. c B. z C. \0 D. d 88.若有说明int a[3][4];则对a 数组元素的正确引用是( C ). A)a[2][4] B)a[1,3] C)a[1+1][0] D)a(2)(1) 89. 若有定义:int a[3]={0,1,2};则a[1]的值为( B )。 A. 0 B. 1 C. 2 D. 3 90. C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符( C ) A) 必须为字母B) 必须为下划线 C) 必须为字母或下划线D) 可以是字母,数字和下划线中任一字符 91. C语言中,引用数组元素时,其数组下标的数据类型允许是( C ) A) 整型常量B) 整型表达式 C) 整型常量或整型表达式D) 任何类型的表达式 92. 下面不正确的字符串常量是( A ) A) 'abc' B) "12'12" C) "0" D) "" 93. 若有定义:int a=6,b=2;char c1='a',c2='b';则表达式a+b%5+c2-c1的值是( C )。 A. 7 B. 8 C. 9 D. 表达式错误 94. 若有定义:int k,i=2,j=4; 则表达式 k=(++i)*(j--) 的值是( B )。 A. 8 B. 12 C. 6 D. 9 95. 以下程序运行后屏幕输出为( B )。 #include void f(int i) { int a=2; a=i++; printf("%d,",a); } main() { int a=1,c=3; f(c); a=c++; printf("%d",a); } A) 4,3 B) 3,3 C) . 4,5 D) 3,5 习题7 7.1选择题。 (1)下列对字符串的定义中,错误的是: A 。 A) char str[7] = "FORTRAN"; B) char str[] = "FORTRAN"; C) char *str = "FORTRAN"; D) char str[] = {'F','O','R','T','R','A','N',0}; (2)以下程序段的输出结果是:____D_________ char a[] = "ABCDE" ; char *p = NULL; for (p=a; p main() { static char a[5]; a = "abcde" ; printf("%s\n", a); } B) #include <> main() { static char a[7]= "goodbye!"; printf("%s\n", a) ; } C) #include <> main() { char a[5] = "abcde"; printf("%s\n", a) ; } D) #include <> main() { static char a[]="abcde"; printf("%s\n", a) ; } (4)阅读下列函数,函数功能为___A_____。 void Exchange(int *p1, int *p2) { int p; p = *p1; *p1 = *p2; *p2 = p; } A)交换*p1和*p2的值B)正确,但无法改变*p1和*p2的值 C)交换*p1和*p2的地址 D)可能造成系统故障 程序填空题 导读:在程序填空题中,已经给出了程序的主干,读者首先要理解程序的思路,再选择正确的内容填入空白处,使程序完成既定的功能。这类习题的设计就是要引导读者逐步掌握编程的方法。本节习题的难度适中,可能有些典型的程序在课堂上已经有所接触,读者一定要独立完成它,这样就可以逐步提高自己的编程能力。在程序设计语言学习的中期,读者对程序设计已经有了初步的了解,而自己编写程序又不知从何处入手,此时解答此类题目可以避免盲目性,从而提高学习的效率。 【】下面程序的功能是不用第三个变量,实现两个数的对调操作。#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语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共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 第一章1、一个C程序可能出现的错误有(A)A,以上都包括 B,逻辑错误 C,运行错误 D,语法错误 2、C程序中一般可以包含几个函数(D) A.1个 B.多个 C.0个 D.至少一个 3.C语言属于程序设计语言的哪个类别(B) A.机器语言 B.高级语言 C.面向对象语言 D.汇编语言 4.以下关于C语言描述错误的是(B) A.一个C程序总是从main函数开始执行 B.一个C程序可以包含多个main函数 C.每个语句的最后必须有一个分号 D.C语言的注释符是以"/*"开始并以"*/"结束 5、在调试过程中,逻辑错误是指(C) A.所书写的语句,不符合C的语法。 B.在从obj生成exe文件的过程中,如果函数名书写错误,可能产生的错误。 C.程序的运行结果不符合题目要求。 D.在exe文件的执行过程中,产生运行异常。 第二章 1、16位的二进制数可以表示的整数的范围是(C) A.[-32768,32768] B.[-32767,32768] C.[-32768,32767] D.[-32767,32767] 2、C语言中的实型数据包括(A) A.float和double B.int和float C.float和char D.int和double 3、以下不合法的字符常量是(C) A.'2' B.'A' C.'ab' 4、在以下各组标识符中,均是合法的C语言标识符是(A) A.abc,A_4d,_student,xyz_abc B.auto,12-a,a_b,ab5.x C.A_4d,_student,xyz_abc,if D.abc,a_b,union,scan 5、若有定义:chara;intb;floatc;doubled; 则表达式a*b+d-c值的类型为(A) A.char B.float C.double D.int 6、类型修饰符unsigned不能修饰(D) A.char B.longint C.int D.float 7、若有定义:doublex=1,y; 执行语句,则y的值是(B) A,1 B,2.0 一、单选题 1. (4分)若调用fputc函数输出字符成功,则其返回值是( )。? A. EOF ? B. 1 ? C. 0 ? D. 输出的字符 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析 2. (4分)若以下程序段: struct dent { int n; int*m; }; int a=1, b=2,c=3; struct dent s[3]={{101<&a},{102<&b},{103,&c}; main() { struct dent *p; p=s; ….. } 则以下表达中值为2的是()。 ? A. (p++)->m ? B. *(P++)->m ? C. (*p).m ? D. *(++p)->m 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析 3. (4分)在一个c源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( ). ? A. extern ? B. register ? C. auto ? D. static 得分:0知识点:C语言程序设计作业题收起解析 答案D 解析 4. (4分)若二维数组a有m列,则在a[i][j]前面的元素个数为()。? A. j*m+i ? B. i*m+j ? C. i*m+j-1 ? D. i*m+j+1 得分:0知识点:C语言程序设计作业题收起解析 答案B 解析 5. (4分)下面程序的运行结果是(). main() { struct cmplx {int x; int y; } cnum[2]={1,3,2,7}; printf(“%d ”,cnum[0].y/cnum[0].x*cnum[1].x); } ? A. 0 ? B. 1 ? C. 3 一、判断题 1、所谓常量,就是在程序运行过程中其值可以改变的量。() 2、一个C程序可以由多个源程序文件构成,但其中只能有一个main()函数。() 3、在C语言中do-while 语句和for循环均是先执行循环体语句,再判断表达式。() 4、在函数调用中将变量的地址作为实参传递给对应形参时,实现的是单向的值传递。() 5、C语言中所有字符串都是以‘\0’结束的。() 6、do-while构成的循环语句中的循环体最少执行1次。() 7、数组名在C语言中表示的是数组的首地址。() 8、使用gets()函数输入字符串时可以在字符串中输入空格。() 9、算术运算符中‘/’的优先级高于‘%’。() 10、char a[5];该语句表明数组a中的第五个元素为a[5]。() 11、C语言源程序文件的扩展名均为.c。() 12、char a[5];数组a中有a[1]、a[2]、a[3]、a[4]、a[5]共5个元素。() 13、C语言程序区分大小写,字符常量必须定义为大写。() 14、若int i=10,j=2;则执行i*=j+8;后i的值为28。() 15、若int x=100,y=200;则语句printf("%d",(x,y));输出结果为100。() 16、c语言中的标识符只能由字母,数字和下划线三种字符组成。() 17、函数getchar()的作用是:输出一个字符。() 18、一个C语言程序总是从第一个函数开始执行。() 19、在c语言中,char型数据在内存中是以ASCII码形式存储的。() 20、在C语言中switch语句必须使用break语句。() 二、选择题 1、以下说法正确的是()。 A、C语言程序总是从第一个函数开始执行。 B、C语言程序中要调用的函数必须在main()函数中定义。 C、C语言程序总是从main()函数开始执行。 c语言程序设计期末试题B(含答案) 一单项选择题(每小题1分,共10分) 1. A 2. C 3. D 4. A 5. B 1.以下4组用户定义标识符中,全部合法的一组是() A)_total clu_1 sum B)if -max turb C)txt REAL 3COM D)int k_2 _001 2.以下程序的输出结果是() #include 面向对象程序设计期末综合练习二(填空题) 填空题 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语言程序设计》模拟试卷一 一、单项选择题(每题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、执行下列程序段后输出的结果是()。 封面 此页统一购买注意本页以下两项的填写 指导老师:李筠虞闯 完成日期:2016-6-5 成绩评定表 课程设计任务书 目录 1、内容及要求 ................................................ 错误!未定义书签。 2、功能分析 .................................................... 错误!未定义书签。 3、设计 ............................................................ 错误!未定义书签。 4、运行与测试 ................................................ 错误!未定义书签。 5、总结 ............................................................ 错误!未定义书签。参考文献 .......................................................... 错误!未定义书签。 1、内容及要求 1.1内容: 人事档案管理:建立数据文件(职工、部门、职称)完成:①数据录入②查询③插入、删除、修改④排序等功能。 1.2要求: 1.程序代码完成,编译运行成功。 2.数据输入首选采用文件的方式,其次键盘输入。 3.分析采用哪种合适的存储结构来储存数据 4.设计一定的用户界面,简洁。 2、功能分析 2.1. 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在人事管理过程中,由于预计记录对于一个单位的人事数来说太大,操作除了能够增加、删除、修改、保存等外,更多的情况是查询,且能够实现快速查询。特别是当需要动态变化时利用指针,例如插入和删除数据等操作时,为方便插入和删除人事记录,通过数据的自动的移动数据,实现动态管理。 2.2本系统涉及的模块主要有:开始、系统管理、人事管理、信息查询等四大模块。 (1)开始界面主要包括: 各个功能的选择。 (1)人事管理主要包括: (编号、姓名等)基本内容的录入,增加等。 (2) 系统管理主要包括:员工信息的修改,排序等。 (3) 信息查询主要包括:员工信息的查找、删除等。 2.3功能模块图 一、填空共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 一、程序设计共113 题第1 题题 号:319 #include "stdio.h" void wwjt(); int fun(int m) { int i,k=1; if(m<=1) k=0; for(i=2;i 一.填空 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. C语言程序设计试题及 答案 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128) C语言程序设计 一、选择题(共40分,每小题2分) 1、以下叙述不正确的是() A、一个C源程序可由一个或多个函数组成 B、一个C源程序必须包含一个main函数 C、C程序的基本组成单位是函数 D、在C程序中,注释说明只能位于一条语句的后面 2、下列四个选项中,是不合法的用户标识符的选项是() A、abc B、12AC C、sun D、 A2 3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是() A、-24 B、0 C、4 D、16 4、下列运算符中优先级最高的是() A、< B、+ C、&& D、== 5、在C语言中,运算对象必须是整型数的运算符是() A、% B、/ C、%和/ D、 + 6、以下关于运算符的优先顺序的描述正确的是() A、关系运算符<算术运算符<赋值运算符<逻辑与运算符 B、逻辑与运算符<关系运算符<算术运算符<赋值运算符 C、赋值运算符<逻辑与运算符<关系运算符<算术运算符 D、算术运算符<关系运算符<赋值运算符<逻辑与运算符 7、在C语言中,如果下面的变量都是int类型,则输出的结果是() sum=pad=5;pAd=sum++,pAd++,++pAd; printf(“%d\n”,pad); A、7 B、6 C、5 D、4 8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是() A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z); C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z); 9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:() void main ( ) { int m,n; scanf(“%2d%3d”,&m,&n); printf(“m=%d n=%d\n”,m,n); } A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误 10、若运行时,给变量x输入12,则以下程序的运行结果是() main( ) { int x,y; scanf(“%d”,&x); y=x>12?x+10:x-12; printf(“%d\n”,y); } A、 0 B、 22 C、 12 D、10 11、C语言中while和do-while循环的主要区别() 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.第一个系统体现结构化程序设计思想的教学工具语言是_______语言。 单项选择题 (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)数据在内存中的存储形式是____。 C语言基础一: 1.下列四组选项中,均不是C语言关健字的选项是( A )。 A) define B) gect C) include D) while IF char scanf go type printf case pow 2.下面四个选项中,均是合法整型常量的选项是( A )。 A)160 B)-0xcdf C) -01 D)-0x48a -0xffff 01a 986,012 2e5 011 0xe 0668 0x <<02>>B>>2 3.下面四个选项中,均是不合法的转义符的选项是( B )。 A) '\"' B) '\1011' C) '\011' D) '\abc' '\\' '\' '\f' '\101' 'xf' '\A' '\}' 'x1f' 4.下面不正确的字符串常量是( A )。 A)'abc' B)"12'12" C)"0" D)" " 5.以下选项中不合法的用户标识符是( A )。 A)abc.c B)file C)Main D)PRINT 6.C语言提供的合法关键字是( D )。 A) swith B) cher C) Case ).Default 7.下列标识符组中,合法的用户标识符为 A A)_0123与ssiped B)del-word与signed C)list与*jer D) keep%与wind 8.在C语言中,逻辑值"真"的表示是用( C )。 A) true B) 整型值0 C)非另整型值D) T 9若有以下定义 char s='\092'; 则该语句( B ) A)使s的值包含一个字符B)定义不合法,s的值不确定 C)使s的值包含4个字符D)使s的值包含3个字符 10设C语言中,int类型数据占2个字节,则float类型数据占(D )个字节。 A)1 B)2 C)8 D)4 11已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为( A )。 A)D B)68 C)不确定的值D)C 12逻辑运算符两侧运算对象的数据类型是( D )。 A) 只是0或1 B) 只能是0或非0正数 C) 只能是整型或字符型数据D) 可以是任何合法的类型数据 13TURBO C中int类型变量所占字节数是( B )。 c语言程序设计期末试题A(含答案) 一、单项选择题(选择一个最佳答案,每题2分,共20分) 1.一个C程序的执行是从(A )。 A) 本程序的main函数开始,到main函数结束 B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束 C) 本程序的main函数开始,到本程序文件的最后一个函数结束 D) 本程序文件的第一个函数开始,到本程序main函数结束 2.下列选项中,不能用作标识符的是(D )。 A) _1234_ B) _1_2 C) int_2_ D) 2_int_ 3.以下定义语句中正确的是( C)。 A) char a='A'b='B'; B) float a=b=10.0; C) int a=10,*b=&a; D) float *a,b=&a; 4.设有以下定义:#define d 2 int a=0; double b=1.25; char c=’A’; 则下面语句中错误的是(B)。 A) a++; B) b++ C) c++; D) d++; 5.以下4个选项中,不能作为一条C语句的是(D)。 A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2; 6.有以下定义语句 double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( C)。 A) a=a+b=b++ B) w%(int)a+b) C) (c+w)%(int)a D) w=a==b; 7.设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是(D)。 A) p=1; B) *q=2; C) q=p; D) *p=5; 选D. A.p是一个指针,不能给它赋一个整型的值1 B.*q仍然是一个指针,*q就是p.所以也不能给它赋一个整型的值. C.q=p;q是个二级指针,p是一级指针,不能把一级指针赋给二级指针. *p=5,即给n赋值为5,正确.c语言程序设计试题答案
C语言程序设计程序填空题库及答案
C语言程序设计期末考试试题(含答案)
C语言程序设计期末考试选择题题库
C语言程序设计
C语言程序设计考试题库
c语言程序设计期末试题B(含答案)
C语言程序设计期末练习填空题.docx
C语言程序设计模拟试题1附答案
c语言程序设计文档格式
大学计算机C语言程序设计(填空题)
c语言程序设计题目及答案
C语言程序设计试题集与答案解析
C语言程序设计试题及答案
C语言程序设计的试题及答案
C语言程序设计试题集及答案
C语言程序设计习题大全(附答案)
c语言程序设计期末试题A(含答案)