ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:22.36KB ,
资源ID:30614185      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/30614185.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《C程序设计》期末复习练习题及参考答案2.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《C程序设计》期末复习练习题及参考答案2.docx

1、C程序设计期末复习练习题及参考答案2C程序设计期末复习练习题及参考答案(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

2、 B) 11 C) 16 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程序中的注释只能出现在程序的开始位置和语句的后面。 B)C

3、程序书写格式严格,要求一行内只能写一个语句。C)C程序书写格式自由,一个语句可以写在多行上。D)用C语言编写的程序只能放在一个源程序文件中。8. 以下选项中不能作为合法常量的是( )。A) 1.234e04 B) 1.234e+4 C) 1.234e0.4 D) 1.234e09. 以下选项中合法的用户标识符是( )。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,y=

4、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,9 B) 2,3,10 C) 1,2,10 D) 2,3,913. 有以下程序,程序执行后的输出结果是( )。#include i

5、nt main() 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)float

7、a=1,*b=&a,*c=&b; D)double a=0 0;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(%s,s+1

8、); 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) 1 22. 在C语言中,以下叙述不正确的是( )。 A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用23. 以下叙述中错误的是( )。A)在程序中凡是以#开始的语句

9、行都是预处理命令行 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)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件 D)fwrit

10、e函数用于以二进制形式输出数据到文件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) 由于p和q数组中都没有字符串结束符,故长度都不能确定27. 设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执

11、行 (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 C) c D) 程序语法出错30. 以下程序的运行结果是( )。#include void main() int x=1,2,3; int s,

12、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的值为2,从键盘输入数据的正确形式应是a=1,b=3,c=2 。8、 一个共用体类型的变量,其所占内存的大小是:由占据内存空间最大的成员决定。,9、

13、设有定义: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; printf(b=%d, y=%dn, b, y);则程序运行结果是:a=6, x=10b=3, y=62#includevoid fun1(int x) x=20;void fun2(

14、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%2d, &x, &y); printf(%d, y-x);程序运行时输入:123456789则程序运行结果是:664#include struct date int year; int

15、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,%d,%dn, d.year, d.month, d.day);程序运行结果为:1999,4,231999,4,235#includevoid Fun(int *y) printf(*y = %

16、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,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);print

17、f(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.2fn,max,min,fun(score,N); return 0;float fun(float *array, int n) int i; float sum=array0; max=m

18、in=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 *pData, *pEnd; pData = a, pEnd = &an-1; while( pData = pEnd) scanf( %f, pData+ );float sum(

19、 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 = a; while( +pData = pEnd) if ( *pData *pKData ) pKData = pData; return pKData - a;main(

20、) 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(i=0;i3;i+) fprintf(fp,%d,ai); fprintf(fp,n); fclose(fp); fp=fopen(d1.dat,r); fscanf(

21、fp,%d,&n); fclose(fp); printf(%dn,n); 程序的运行结果是 123 。 四、程序填空题阅读程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。1. 从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输出“Yes”,否则输出“No”。已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。能被400整除。#include main() int year, flag; printf(Enter year:); scanf(%d, &year ); if ( year%4=0&year%100!=0 | year%400=0 ) fl

22、ag = 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 (flag) printf(它是素数n); else printf(它不是素数n); int IsPrime(int m) int i, k; if (m = 1) return 0; for (i=2; i=s

23、qrt(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;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1