2022年C程序设计试卷测试卷及答案2套

上传人:无*** 文档编号:113394112 上传时间:2022-06-25 格式:DOC 页数:24 大小:197.24KB
收藏 版权申诉 举报 下载
2022年C程序设计试卷测试卷及答案2套_第1页
第1页 / 共24页
2022年C程序设计试卷测试卷及答案2套_第2页
第2页 / 共24页
2022年C程序设计试卷测试卷及答案2套_第3页
第3页 / 共24页
资源描述:

《2022年C程序设计试卷测试卷及答案2套》由会员分享,可在线阅读,更多相关《2022年C程序设计试卷测试卷及答案2套(24页珍藏版)》请在装配图网上搜索。

1、姓名 学号 学院 专业 座位号 ( 密 封 线 内 不 答 题 )1. 密封线线_ _ 诚信应考,考试作弊将带来严重后果! C+程序设计试卷注意事项:1. 考前请将密封线内填写清楚; 2. 所有答案请答在试卷的答案栏上; 3考试形式:闭卷; 4. 本试卷共 五 大题,满分100分,考试时间120分钟。题 号一二三四五总分得 分评卷人一、 单项选择题:(每题2分,共20分)1. 结构化程序设计的三种基本控制结构是( )。 A)输入、处理、输出B)树形、网形、环形 C)顺序、选择、循环D)主程序、子程序、函数2. 下列哪个是C+的合法变量名( )?A) 8d B) ex3.12 C)1_2a D)

2、 _int3. 若整型变量 int a=2,b=1,c=3,d=4; 则条件表达式ab?a:cd?c:d的值为( )。A) 1 B) 2 C) 3 D) 44. for(int x=0,y=0;!x&y=5;y+)语句执行循环的次数是( )。 A)B)C)D)无限循环5. 若一个函数体中定义与全局变量相同名字的变量x,在函数体内对x赋值,修改的是 ( )。A)局部变量和全局变量都被修改B) 全局变量xC)不确定D) 局部变量 x6. 设有如下定义语句:int a5,*p=a;,则下列表达式错误的是( )。A)p+ B)a+ )p-a )a+17. 设有变量定义: double x; int m

3、; 函数原型声明:void f(double *, int &); 则正确的函数调用语句是( )。A) f(&x,m);B) f( x, &m);C) f(*x, &m);D)f (x,*m);8. 若用数组名作为调用函数的实参,则传递给形参的是( )。) 数组存贮首地址 ) 数组的第一个元素值) 数组中全部元素的值 ) 数组元素的个数9. 设有二维数组a34, 不等价的一对表达是( )。A) *(a0+2) 与 a02B) a0+3 与 &a03C)*a1 与 a10D) a02 与 a0+210. 若有函数原型int max (int a , int b); 并且有:int (*p) (

4、int , int ) = max ;调用max函数的正确方法是( )。A) ( * p ) max ( a , b ) ;B) * p max ( a , b ) ; C) ( * p ) ( a , b ) ;D) * p ( a , b ) ; 答案栏:1、_ 2、_ 3、_ 4、_5、_ 6、_7、_ 8、_9、_ 10、_ 二、 简答题:(共20分)1. 语句 cout ”yx42x102nx”的显示结果是什么?说明理由。(3分)答:2. 以下程序的输出结果是什么?请说明原因。(2分)int main() unsigned short a=65535; short int b;b=a

5、;cout”b=”b;return 0;答:3. 设有说明char a6, * b =a; sizeof(a), sizeof(b)的值各是多少?分析结果原因。(3分)答:4. 设有说明int a2*3; 请写出两个表示数组a最后一个元素地址的表达式(2分)。答:5. 设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的原型。(2分)main() double s1022;int n; fun(s);答:6. 设有如下定义:struct personchar name10; int age;person class10=“Johu”, 17,“Paul”, 19

6、“Mary”, 18,“Adam 16,;根据上述定义,写出能输出字母M语句。(3分)答:7. 以下语句不能正确输出单链表head的数据元素值,请找出原因。(2分)struct linkint data; link * next; ;link *head, *p;p=head;while(p!=NULL) coutp.data; p+; 答:8. 设有函数调用语句 array_max_min(a ,n, max, min); 功能是由参数max, min返回基本整型数组a 的n个元素中的最大值和最小值。对应的函数原型是什么?(3分)(只需给出原型,不用写函数定义)答:三、 阅读程序,写出运行结

7、果:(每小题4分,共20分) C+程序设计试卷第 4 页 共 24 页1. #includeusing namespace std; int main () int x,n; x=n=5; x+=n+; coutxnendl;return 0; 2. #includeusing namespace std;int main () char s6=abcde, *p=s; cout*ppendl; return 0;3. #include using namespace std;int main() int i,j;for( i=1; i=3; i+ ) j=1; while (ji) cout

8、 i,jendl; j+; return 0;4. 以下程序的输出的结果是#include using namespace std;void incre();int x=3;int main() int i; for (i=1;ix;i+) incre();void incre() static int x=1;x*=x+1;cout x; 5. #include using namespace std;void fun ( int , int , int * ) ;int main ( )int x , y , z ; fun ( 5 , 6 , &x ) ; fun ( 7 , x , &

9、y ) ; fun ( x , y , &z ) ; cout x , y , z ; return 0;void fun ( int a , int b , int * c ) b+=a ; * c=b-a ; 答案栏:1、_2、_3、_4、_5、_四、 程序填空题:(每空2分,共22分)1. 下面程序的功能是:输入三角形的三条边存放在变量a,b和c 中,判别它们能否构成三角形,若能,则判断是等边、等腰、还是其它三角形,在横线上填上适当内容。#include using namespace std;int main() float a, b, c ; coutabc; if ( a+bc &

10、 b+ca & c+ab ) if ( 【1】 ) cout等边三角形!n; else if ( 【2】 ) cout等腰三角形!n; else cout其它三角形!n; else cout不能构成三角形!n;return 0;2. 以下程序功能是打印100以内个位数为6且能被3整除的所有数。#include using namespace std;int main ( ) int i , j ; for ( i = 0 ; _【3】_ ; i + + ) j = i * 10 + 6 ; if ( _【4】_ ) continue ; cout j ” ” ; return 0;3. 下列程

11、序实现两个变量的值互换。#include using namespace std;void swap(int *, int *);int main() int a=3,b=8; swap(【5】 );couta=a b=bendl; return 0; void swap(int *x,int *y) int temp= 【6】 ; *x=*y; *y=temp; 4. 求n(n6)内的所有偶数表示为两个素数之和,下图为输入16的运行结果。补充完整以下程序。提示:一个偶数n(n6)可以表示为 1+(n-1),2+(n-2),3+(n-3), #include using namespace s

12、td;#include#include int isprime(int); int main() int num,i,n; cout=6):; cinnum;for( n=6; n=num; n+=2)for( i=3;i=n/2;i+=2)if(_ 【7】_)coutsetw(3)n=setw(3)i +setw(3)(n-i)endl; break; return 0;int isprime(int m) int i, k=sqrt(m); for(i=2; i=k; i+) if(_ 【8】_) return 0 ; _ 【9】_ 5. 下面是一个类的测试程序,其执行结果为: 50-12

13、=38请将程序补充完整。 #includeusing namespace std; class Test int m,n; public: void init(int,int); void print(); ;void Test:init(int i,int j) _ 【10】_ void Test:print() _ 【11】_int main() Test a; a.init(50,12); a.print(); return 0; 答案栏:(1)_ (2) _(3) _(4) _(5) _(6) _(7) _(8) _(9) _(10) _(11) _五、 编程题:(18分)1. (6分

14、)编写程序,打印正整数的平方和立方值。程序运行后显示相应的提示信息,要求输入2个正整数,然后显示这个范围的数据的平方和立方值。例如,分别输入整数1和10,执行效果如下图所示。答:2. (6分)以下程序求一维数组元素的最大值,并返回此值。请依题意编写函数f及填写函数原型。#include using namespace std;const int n=10; _ /f函数原型int main()int an, i, max; for(i=0; iai; max=f(a,n); coutmax=max; return 0;答:3. (6分)以下程序的功能是分离一个浮点数的整数部分和小数部分。程序用

15、字符串存放输入数据,执行效果如图所示。根据main函数,请写出separate函数的原型和实现定义。#includeusing namespace std;_ /separate函数原型int main() char s20; int i=0, d=0; couts; separate(s, i, d);/调用函数 couts整数部分是:iendl; couts小数部分是:ddata; p=p-next;void array_max_min(int *, int , int *,int *);八、 阅读程序,写出运行结果:(每小题4分,共20分) C+程序设计试卷第 24 页 共 24 页6.

16、 1067. aabcde8. 2,13,13,22,6 6,6,6九、 程序填空题:(每空2分,共22分)1. a= =b & b= =c2. a= =b | a= = c | b= =c 3. i 104. j % 35. &a, &b6. *x7. isprime(i) & isprime(n-i)8. !( m%i)9. return 1;10. m=i;n=j;11. coutm-n=m-nendl;十、 编程题:(18分)1. #include using namespace std;#include int main() int a,b,i; cout=0):; cina; co

17、ut第一个整数):; cinb; coutsetw(10)Nsetw(10)平方setw(10)立方endl; for( i=a;i=b;i+) coutsetw(10)isetw(10)i*isetw(10)i*i*iendl; return 0; 2. #include using namespace std;const int n=10;int f(int *, int); /f函数原型int main()int an, i, max; for(i=0; iai; max=f(a,n); coutmax=max; return 0;int f(int *a,int n)int i,max

18、; max=a0; for(i=1;imax) max=ai; return max;3. #includeusing namespace std;void separate(char *,int & ,int &); /separate函数原型int main()姓名 学号 学院 专业 座位号 ( 密 封 线 内 不 答 题 )3. 密封线线_ _ 诚信应考,考试作弊将带来严重后果! 华南理工大学期末考试C+程序设计试卷注意事项:1. 考前请将密封线内填写清楚; 2. 所有答案请答在试卷的答案栏上; 3考试形式:闭卷; 4. 本试卷共 五 大题,满分100分,考试时间120分钟。题 号一二三

19、四五总分得 分评卷人十一、 单项选择题:(每小题2分,共20分)11. 一个C+程序从编写源程序到得到运行结果要经历的四个步骤是()。 A)编译、编辑、连接、运行B)编辑、编译、汇编、运行 C)编辑、编译、连接、运行D)编译、连接、汇编、运行12. 下列选项中,哪个是C+语言的合法变量名( )?A) file.cppB) _123C)9abcD) new13. 对于语句序列:int x=5,y=6,z; float a=2.5; z=y/x+y/a+a; 执行后z的值为( )。A) 5B) 6 C) 6.1 D) 5.914. 以下选项中可作为C语言合法常量的是( )。A)-8e1.0B)-0

20、80C)-80.D)-80.0e15. 设有int a=1,b=2,c=3,d=4; 则条件表达式ab?a:cd?c:d的值为( )。A) 1 B) 2 C) 3 D) 416. 以下程序的运行结果是( )。 int main() unsigned short a=65535; short b; b=a; coutb; return 0; A) -32768B) 32767 C) 65535 D) -117. 设有定义语句: int a6 = 2,4,6,8,5,7, *p = a, i ; 要求依次输出a数组6个元素的值,不能完成此操作的语句是( )。A) for(i=0;i6;i+)cou

21、t*(p+)endl;B) for(i=0;i6;i+) cout*(p+i)endl;C) for(i=0;i6;i+) cout*p+endl; D) for(i=0;i6;i+) cout(*p)+endl;18. 设有定义语句:char a10, *p=a; 以下赋值语句中,正确的是( )。) a=hello;) a10= hello;) strcpy(a, hello);) *p=hello;19. 下列带有默认参数的函数原型声明中,正确的是( )。A) float fun(int a=5 , int b=5, int c, int d);B) float fun(int a=5,

22、int b=5, int c, int d=5);C) float fun(int a=5, int b , int c , int d );D) float fun(int a ,int b , int c=5, int d=5);20. 设有定义语句:struct point int x; int y; v1; 则以下语句中正确的是( )。A) point.x=10;B) point v2; v2.x=10;C) struct v2; v2.x=10;D) v1 v2; v2.x=10;答案栏:1、_ 2、_ 3、_ 4、_5、_ 6、_7、_ 8、_9、_ 10、_二、程序填空题(每空2

23、分,共20分)答案栏:1、_ 2、_3、_ 4、_;_;_;_5、_;_;_ 6、_7、_ 8、_9、_ 10、_1、以下函数的功能是:用递归法将一个整数n转换成字符串。例如:输入整数1635,应输出字符串1635。n的位数不确定,可以是任意位数的整数。请填空。void fun(int n)if(n10) 【1】 /递归出口else 【2】 /递归体putchar(n%10+48);2、以下程序的功能是:用起泡法对6个整数排序(按从小到大顺序)。请填空。#include using namespace std; void main( ) int a6, i, j, t; for(i=0; ia

24、i; for(j=0; jai+1) 【4】 /交换两个数的位置,使小数上浮 for(i=0; i6; i+)coutai ; 3、以下程序的功能是:定义一个结构体类型,内含学生学号和一门课的成绩,并开辟动态内存存放一个学生的数据:学号1001,成绩90。执行该程序后运行结果如下: 1001, 90请填空。#includeusing namespace std;struct Student int n; /学号double s; /成绩;void main( )Student *p;p=new Student; 【5】 /赋值 【6】 /输出delete p;4、以下程序的功能是:执行该程序后

25、运行结果如下: 43请填空。#includeusing namespace std;void f1( 【7】 ) x=x+2; y=y+2;void main( )int a=2, b=3;f1(a,b);coutabendl;5、以下程序的功能是:输出二维数组各元素值。请填空。#includeusing namespace std;void main( )void output(int (*)3);int a23=1, 2, 3, 4, 5, 6;output( 【8】 );void output( int (*p)3 ) int i, j; for(i=0; i2; i+)for(j=0;

26、 j3; j+) cout 【9】 ; coutendl;6、以下函数的功能是:判断一个数是否为素数。请填空。bool prime(int m)int i;bool prime1;prime1=true;for(i=2; i=sqrt(m); i+)if(m%i=0) 【10】 return prime1;三、阅读程序,写出运行结果。(每小题3分,共24分)答案栏:1、_ 2、_3、_ 4、_5、_ 6、_7、_ 8、_1、#includeusing namespace std;void main( )int i=3, j=6, m, n;m=i+ - +j;n=+i+j-;coutm n i

27、 j;2、#include using namespace std;void main( )double x=-0.5, y;if(x1)if(x0)y=x+2;else y=x+4;else y=x+5;coutx=x,y=y;3、#include using namespace std;void main( ) int x=2, y=1; while(x4)switch(x+)case 3: y+; case 1: y+=3;break; case 2: y-;couty;4、#include using namespace std;void p(float f)coutfloatf;vo

28、id p(double d)coutdoubled;void p(int i)coutinti;void main() p(2);p(A);p(2.1);5. #include using namespace std; int x, y;void fun(int a) int y , b;b=a+2; x=x+a; y=x-b;coutx y a bendl;int main( ) int a=1, b=2;x=3, y=4; fun(b); coutx y a bendl; return 0; 6. #include using namespace std;int f(int a) int

29、b=0; static int c=3; b+; c+; return (a+b+c);int main( ) for (int i=0; i3; i+) coutf(i) ; return 0;7. #include using namespace std;int main( ) char ch =STUDY ; coutchendlch2endlch+1endl; return 0; 8. #include using namespace std;int main( ) int a=12, b=34, *p, *q, *r; p=&a; q=&b; if (*p*q) r=p; p=q;

30、q=r; cout*p *qendl; *q=*p+*q; couta bendl; return 0;四、简答题(每小题4分,共12分)1. 试分析字符串常量 abcnefg101 由哪几个字符构成?该字符串占用多少个字节?若用 coutabcnefg101 ; 会看到的输出结果是什么?2. 若有如下定义:union ctype float y; short int m; char code3;ctype cdat;试画出变量cdat的内存构造图(示意图),并指出该变量占用内存的字节数。3. 下面程序有错误: #include using namespace std; void fun(in

31、t a ) for (int i=0; i5; i+) cout*a+ ; / (1) coutendl; int main( ) int a5=10,20,30,40,50; for (int i=0; i5; i+) cout*a+ ; / (2) coutendl; fun(a);return 0; 源程序中(1)和(2)之处写法一样,但编译时(2)处出错而(1)处正确,试指出原因,并将(2)处改正。五、程序设计题(每小题8分,共24分)1. 设计程序输出数列An的前50个数,输出时要求每行输出5个数。数列有下列规律: 2. 众数是指一组数据中出现次数最多的那个数据。例如:1,2,2,3

32、,3,2,,4的众数是2。试设计一个求众数的函数mode,其形式参数有2个:数组(该数组存放一组数据)、数据个数。函数的返回值是众数。在主函数中输入一组数据存放在数组中,然后调用函数mode求得众数,最后在主函数中显示出众数。3. 需要求2个不同的圆柱体的表面积,设计一个面向对象的程序。数据成员包括:radius(半径),height(高);还可根据需要定义其它数据成员。要求分别用成员函数实现以下功能:(1) 由键盘输入圆柱体的半径、高;(2) 计算圆柱体的表面积;(3) 输出圆柱体的表面积。请编写程序。 C+程序设计试卷参考答案十二、 单项选择题:(每题2分,共20分)1、_C_ 2、_B_

33、 3、_A_ 4、_C_5、_A_ 6、_D_7、_D_ 8、C_ 9、D 10、_B_二、程序填空题(每空2分,共20分)1、putchar(n+48); 2、fun(n/10); 3、in=1001;p-s=90; 6、coutn,sendl;7、int &x, int y 8、a 9、*(*(p+i)+j) 10、prime1=false;三、阅读程序,写出运行结果。(每题3分,共24分)1、 -4 12 5 6 2、 x=-0.5, y=3.5 3、 4 4、 int2int65double2.15、 5 1 2 4 6、 5 7 9 5 4 1 2 7、 STUDY 8、 34 12

34、 U 46 34 TUDY 四、简答题(每小题4分,共12分)1. 字符串由9个字符组成:a b c n e f g A 占用10个字节。 输出为: abc efgA2. 占4个字节。 m code y3. (1)处的a实际上是指针变量,可以+;(2)处的a是一个数组名,不能+ 可将(2)处改为cout*(a+i) ; 或 coutai ;五、程序设计题(每小题8分,共24分)1. #include using namespace std;int main( ) float a50=1, 0.5; int i; for(i=2;i50;i+) ai=ai-1*(ai-2+1)/(ai-1+1)

35、; for (i=0;i50;i+) coutai ; if ( (i+1)%5=0 ) coutendl; return 0;2. #include using namespace std; int mode(int a , int n) int i , j, m=0, len, c; for (i=0; in; i+) len=1; for (j=i+1; jm) m=len; c=ai; return c;int main( ) int z, i , a7; for (i=0; iai; z=mode(a,7); cout众数是zendl; return 0;3. #include us

36、ing namespace std;class Cylinder private: float radius; float height; float area; public: void input( ); float calc_area( ); void output_area( );void Cylinder:input( ) cinradiusheight;float Cylinder:calc_area( ) area=3.1415926*radius*radius*2+2*3.1415926*radius*height; return area;void Cylinder:outp

37、ut_area( ) calc_area( );cout表面积:areaendl;int main( ) Cylinder a,b; a.input( ); a.output_area( );b.input( ); b.output_area( ); return 0; char s20=0; int i=0, d=0; couts; separate(s, i, d);/调用函数 couts整数部分是:iendl; couts小数部分是:dendl; return 0; void separate(char *s, int &a, int &b)int i; for(i=0;si!=.;i+) a=a*10+si-48; for(i+;si!=0;i+) b=b*10+si-48;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!