1、C次序 方案 期末复习练习 题及参考答案 (2)一、单项选择 题 1揣摸 字符串s1与字符串s2相当 ,应当应用 : 。A) if (s1 = s2) B) if (strcmp(s1, s2)C) if (!strcmp(s1, s2) D) if (strcmp(s1, s2) = 0)2二维数组a有m行n列,那么在aij之前的元素个数为 。A. j*n+i B. i*n+j C. i*n+j-1 D. i*n+j+13以下次序 实行 后的输出结果是 。#include#includemain() printf(%dn, strlen(IBMn012t0);A) 10 B) 11 C) 1
2、6 D) 124有如下次序 片段 :int i = 0;while(i+ = 2); printf(%d, i);那么精确 的实行 结果是:A) 2 B) 3 C) 4 D) 次序 陷入 去世 循环 5. 下面哪个定义 是合理 的 。A) char a8 = language;B) int a5 = 0,1,2,3,4,5;C) char *a = string;D) int a2 = 0,1,2,3,4,5,6;6. 一个C语言 的语句必须 应用 的终了标志 是 。A) , B) 。 C) ; D) :7. 以下表达 精确 的选项是 。 A)C次序 中的注释只能出现在次序 的开始位置跟 语句
3、的后面。 B)C次序 抄写 格式 严峻,恳求 一行内只能写一个语句。C)C次序 抄写 格式 自由,一个语句可以 写在多行上。D)用C语言 编写的次序 只能放在一个源次序 文 件中。8. 以下选项中不克不迭 作为合理 常量的是 。A) 1.234e04 B) 1.234e+4 9. 以下选项中合理 的用户标识符是 。A) int B) #max C) _3int D) A.max10. 设x跟 y均是int型变量,那么实行 以下语句后的输出为 。x=15;y=5;printf(%dn,x%=(y%2);A) 0 B) 1 C) 6 D) 1211. 设x,y跟 z根本上 int型变量,且x=3,
4、y=4,z=5,那么以下表达 式中,值为0的表达 式是 。A) x&y B) !(xy&!z | 1) C) x=y D) x|+y&y-z12. 以下次序 运行 结果是 。#include int fun(int i, int j)i+, j+;return i + j;int main()int a = 1, b = 2, c = 3;c += fun(a,b) + a;printf(%d,%d,%dn,a, b, c );return 0;A) 1,2,9B) 2,3,10C) 1,2,10D) 2,3,913. 有以下次序 ,次序 实行 后的输出结果是 。#include int ma
5、in()int a = 2, 4, 6, 8, 10, y = 0, x, *p;p = &a1;for(x = 1; x 3; x+)y+=px;printf(%dn,y);return 0;A) 10 B) 11 C) 14 D) 1514. 有以下次序 ,以下表达 精确 的选项是 。#include #include int main()char p = a,b,c, q10 = a,b,c;printf(%d %dn,strlen(p),strlen(q);return 0;A)在给p跟 q数组赋初值时,系统会自动 添加 字符串终了符,故输出的长度都为3。B) 由于 p数组中不 字符串
6、终了符,长度不克不迭 判定 ;但q数组中字符串长度为3。C) 由于 q数组中不 字符串终了符,长度不克不迭 判定 ;但p数组中字符串长度为3。D) 由于 p跟 q数组中都不 字符串终了符,故长度都不判定 。15. 以下可用于C语言 用户标识符的一组是 。 A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof 16. 以下选项中不属于字符常量的是A)C B)C C)xCC D) 07217. 15以下定义 语句中精确 的选项是 。A)int a=b=0; B)char A=65+1,b=b; C)fl
7、oat a=1,*b=&a,*c=&b; D)double a=00;b=1.1; 18. 当变量c的值不为2、4、6时,值也为真的表达 式是 。A)(c=2)|(c=4)|(c=6) B)(c=2& c=2&c=2& c=6)&(c%2!=1) 19. 下面说明不精确 的选项是 。A)char a10=china; B)char a10,*p=a; p=china; C)char *a;a=china; D)char a10,*p; p=a=china;20. 有定义 语句:char s10;,假设 要从终端给s输出5个字符,差错 的输出语句是 。A)gets(&s0); B)scanf(%
8、s,s+1); C)gets(s); D)scanf(%s,s1); 21. 有以下次序 ,次序 实行 后的输出结果是 。#includevoid main() unsigned short a = 65535;short b;b = a;printf(%dn,b);A) 65535 B) 0 C) -1 D) 122. 在C语言 中,以下表达 不精确 的选项是 。 A) 在C次序 中,不论是整数仍然 实数,都能被精确无误的表示 B) 在C次序 中,变量名代表存储器中的一个位置C) 静态变量的生涯 期与全体 次序 的生涯 期一样D) C语言 中变量必须 先定义 后引用23. 以下表达 中差错
9、的选项是 。A)在次序 中凡是以#开始的语句行根本上 预处理 命令 行 B)预处理 命令 行的最后不克不迭 以分号表示 终了 C)#define MAX 是合理 的宏定义 命令 行 D)C次序 对预处理 命令 行的处理 是在次序 实行 的过程 中停顿的24. 设有以下说明语句typedef struct int n; char ch8; PER; 那么下面表达 中精确 的选项是 。A)PER 是结构体变量名 B)PER是结构体典范 名 C)typedef struct 是结构体典范 D)struct 是结构体典范 名25. 以下表达 中差错 的选项是 。A)gets函数用于从终端读入字符串 B
10、)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件 D)fwrite函数用于以二进制方法 输出数据到文件26. 有以下次序 #includemain() char p=a, b, c,q10= a, b, c; printf(%d%dn,strlen(p),strlen(q); 以下表达 中精确 的选项是 。A) 在给p跟 q数组置初值时,系统会自动 添加 字符串终了符,故输出的长度都为3 B) 由于 p数组中不 字符串终了符,长度不克不迭 判定 ,但q数组中字符串长度为3 C) 由于 q数组中不 字符串终了符,长度不克不迭 判定 ,但p数组中字符串长度为3 D
11、) 由于 p跟 q数组中都不 字符串终了符,故长度都不克不迭 判定 27. 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 实行 (m=ab)&(n=cd)后,n的值是 。A)1 B)2 C)3 D)428. 设有如下定义 : int x=10,y=3,z;那么语句 printf(%dn,z=(x%y,x/y);的输出结果是 。A) 0 B) 1 C) 3 D) 429. 下面的次序 #includevoid main()char ch;scanf(%3c, &ch);printf(%c, ch);假设从键盘上输出 abc回车那么次序 的运行 结果是 。 A) a B) b
12、C) c D) 次序 语法出错 30. 以下次序 的运行 结果是 。#include void main() int x=1,2,3; int s,i,*p=x; s=1; for(i=0;i b ? a:b ;。6、以下次序 的输出结果是7,1 。int ast(int x,int y,int * cp,int * dp) *cp=x+y; *dp=x-y; main() int a=4,b=3,c,d;ast(a,b,&c,&d);printf(%d,%d/n,c,d);7、有如下输出语句:scanf(“a=%d,b=%d,c=%d,&a,&b,&c);为使变量a的值为1,b的值为3,c的
13、值为2,从键盘输出数据的精确 方法 应是a=1,b=3,c=2 。8、 一个共用体典范 的变量,其所占内存的大小 是:由占据 内存空间最大年夜 的成员决定 。,9、 设有定义 :int x=12,n=5; 那么表达 式 x%=(n%2) 的值为0 。10、设有float x;写出掉 掉 落 x小数部分的表达 式 x-(int)x 。假设 x为12.345,那么表达 式的结果为0.345三、次序 运行 结果分析题1#include main( )int a = 5, b = 4, x, y;x = 2 * a+ ;printf(a=%d, x=%dn, a, x);y = -b * 2;prin
14、tf(b=%d, y=%dn, b, y);那么次序 运行 结果是:a=6, x=10b=3, y=62#includevoid fun1(int x) x=20;void fun2(int b4) int j; for(j=0; j4; j+) bj=j; main() int x = 10; int a4 = 1,2,3,4, k; fun1(x); printf(x = %dn, x); fun2(a); for(k=0; k4; k+) printf(%dn, ak); 运行 结果是:x = 1001233#include main() int x, y;scanf(%2d%*4s%2
15、d, &x, &y);printf(%d, y-x);次序 运行 时输出:123456789那么次序 运行 结果是:664#include struct date int year; int month; int day;void func(struct date p) p.year = 2000; p.month = 5; p.day = 22;main() struct date d; d.year = 1999; d.month = 4; d.day = 23; printf(%d,%d,%dn, d.year, d.month, d.day); func(d); printf(%d,%
16、d,%dn, d.year, d.month, d.day);次序 运行 结果为:1999,4,231999,4,235#includevoid Fun(int *y) printf(*y = %dn, *y);*y += 20; printf(*y = %dn, *y);main()int x = 10;printf(x = %dn, x);Fun(&x);printf(x = %dn, x); 次序 运行 结果是:x = 10*y = 10*y = 30x = 306. 当运行 以下次序 时,运行 结果是_4332_。#include int main()int s12 = 1,2,3,4
17、,4,3,2,1,1,1,2,3, c5 = 0, i;for(i = 0; i 12; i+) c si +;for(i = 1; i 5; i+) printf(%d,ci);printf(n);return 0;7当运行 以下次序 时,运行 结果是_ _。#include #define N 10float fun(float *array, int n);float max, min;int main() float scoreN=90,80,70.5,98,60.5,95,53,85,75,90;printf(max = %6.2fnmin = %6.2fnaverage = %6.
18、2fn,max,min,fun(score,N);return 0;float fun(float *array, int n)int i;float sum=array0;max=min=array0;for( i=1;imax)max = arrayi;else if(arrayimin) min = arrayi;sum = sum + arrayi;return sum/n;8当运行 以下次序 时,从键盘输出如下内容并回车:95 56 75 88 85 ,那么下面次序 的运行 结果是_输出共2行。#include void input( float *a, int n ) float
19、*pData, *pEnd;pData = a,pEnd = &an-1; while( pData = pEnd) scanf( %f, pData+ );float sum( float *a, int n ) float s = 0; float *pData, *pEnd; pData = a,pEnd = &an-1; while( pData = pEnd) s += *pData+; return s;int mink( float *a, int n ) float *pData, *pEnd, *pKData;pData = a,pEnd = &an-1, pKData =
20、a;while( +pData = pEnd) if ( *pData *pKData )pKData = pData; return pKData - a;main() float a5; int k; input( a, 5 ); printf( Sum=%6.2fn, sum(a,5) ); k = mink( a, 5 ); printf( Min:a%d=%6.2fn, k, ak );Sum =399.00Min:a1 = 56.009有以下次序 #include main() FILE *fp; int a10=1,2,3,i,n; fp=fopen(d1.dat,w); for
21、(i=0;i3;i+) fprintf(fp,%d,ai); fprintf(fp,n); fclose(fp); fp=fopen(d1.dat,r); fscanf(fp,%d,&n); fclose(fp); printf(%dn,n); 次序 的运行 结果是 123 。 四、次序 填空题阅读 次序 ,在标有下划线的空白 处填入适当 的表达 式或语句,使次序 残缺并符合 题目 恳求 。1. 从键盘任意 输出一个年号,揣摸 它是否 是闰年。假设 是闰年,输出“Yes,否那么输出“No。已经清楚 符合 以下条件 之一者是闰年:能被4整除,但不克不迭 被100整除。能被400整除。#inclu
22、de main() int year, flag;printf(Enter year:);scanf(%d, &year );if ( year%4=0&year%100!=0 | year%400=0 ) flag = 1; else flag = 0; if ( flag ) printf(Yesn); else printf(Non); 2. 编程揣摸 m是否 为素数。 #include #include int IsPrime(int m);main()int n, flag; printf(Input n:); scanf(%d, &n); flag = IsPrime(n);if
23、(flag) printf(它是素数n); else printf(它不是素数n); int IsPrime(int m)int i, k; if (m = 1) return 0; for (i=2; i=sqrt(m); i+)k = m % i;if (k = 0)return 0; return 1 ; 3以下次序 在数组a中同时查寻 最大年夜 元素下标跟 最小元素下标,分不存放在main函数的变量max跟 min中,请补齐呼应 代码使次序 可以 精确 运行 。#include void find(int *a, int n, int *max, int *min)int i;*max = *min = 0;for(i = 1; i a*max)_*max=i _;else if(ai a*min)_*min=i _;int main()int a = 5,9,7,8,2,6,3;int max,min;find(_a,7,&max,&min _);printf(max = a%d,min = a%dn,max,min);return 0;精选可编辑