2022年C++程序设计期末考试卷及答案2套.doc
《2022年C++程序设计期末考试卷及答案2套.doc》由会员分享,可在线阅读,更多相关《2022年C++程序设计期末考试卷及答案2套.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、姓名 学号 学院 专业 座位号( 密 封 线 内 不 答 题 )密封线线_ _ 诚信应考,考试作弊将带来严重后果!期末考试 高级语言程序设计 I 试卷 ( A )注意事项:1. 考前请将密封线内填写清楚; 2. 所有答案写在答题纸上; 3试卷和答题纸同时提交; 4考试形式:闭卷; 5. 本试卷共五大题,满分100分,考试时间120分钟。题 号一二三四五总分得 分评卷人一、单项选择题。(每小题2分, 共20分) 1. 下列选项中,合法的常量表示是( )。(A) program(B) 183AF(C) -618e3(D) 1.0e-5.32. 执行下列语句后,i,j,k的值为( )。int i=1
2、,j=1,k=1; (i+,-j) & +k;(A) 2,0,1(B) 2,0,2(C) 1,1,1(D) 1,0,23. 以下有关C+的说法中,正确的陈述是( )。(A) const只能约束普通内存变量的的写操作,不能约束指针变量的写操作。(B) 静态变量和全局变量的作用域都是文件作用域。 (C)一维数组定义中数组的长度表达式可以使用赋初值的变量。 (D) inline函数没有普通函数调用的时空开销。4. 有如下代码段,不正确的函数调用形式( )。typedef int (*pType)(int,int);int max(int a,int b) return ab?a,b; pType p
3、f = max;(A) pf(1,2);(B) (*pf)(1,2);(C) max(1,2);(D) (&pf)(1,2);5. 以下程序段中,循环次数是()for(int i=10;i0&i%2;) i=i-2; (A) 0(B) 4(C) 5(D) 66. 已知int iArray22=0,1,2,3,下列表达式的值为2的是( )。(A) iArray21(B) iArray11(C) *(*(iArray+1) (D) *(*(iArray)+1)7. 假设 char *a=“fortran”,“basic”,“c+”, “java”;则语句cout(D)10. 30*(F-C)/5-
4、2*3表达式的值是( )。(A)6(B) 12(C)48(D)1811. sizeof(char)+6*(65)/(23?2:3)表达式的值是( )。(A) 3(B) 4(C) 1(D)2二、简答题。(共20分)1写出两个表达变量x和y的值都不等于零的逻辑表达式。 x!=0&y!=0 x&y2有以下语句,循环体执行次数是多少?结束后x的值是什么?10,-1int x=10; while(x-) coutxendl; 3有说明语句:int a; double x; int *p=new int100;分析以下表达式值的类型。a+xa=a+xp+1double int int*4设有函数:void
5、 fun1(int a) a+; ;void fun2(int & a) a+; ;有以下调用:int b=5;fun1(b);/b的值是什么?fun2(b);/b的值又是什么?两次调用函数后变量b的值有变化吗?为什么?传值参数,引用参数5设有函数:int function(int a) static int k=0; return a+k+; 并有调用:int t=1; t=function(t)+function(t)+function(t);有人说t的结果值等于3,对吗?为什么?6,k是静态变量6.设有语句:int *ap=new int10;请写出两个动态数组最后一个元素的表示形式。7
6、请解释以下说明语句中标识符www的含义。double * www(double);www是函数名,有一个double值参,返回值类型为double*8.设有语句:char *s=South China University of Technology;请写输出子串“University of Technology”的语句。 couts+12endl;9有说明语句:int ary100; int max;赋值语句调用函数MaxAry求数组的最大元素值:max=MaxAry(ary,10);请写出MaxAry的函数原型。int MaxAry(const int *,int); 或 int MaxA
7、ry(const int ,int);10有语句:struct link int code; link *next; ; link *head;/push(head,256);已知head为单链表的头结点,函数调用语句push在表头插入一个数据,请写出对应的函数原型。void push(link *&, int);三、阅读程序写输出结果(共20分)1./循环#include void main() int i=0,s=0; while (i+=10) if(i%2) continue; s=s+i; coutst; 261220302./数组,指针#includevoid main() int
8、 num5; int *p=num, i; for(i=1;i=5;i+) numi-1=i; for(i=0; i5; i+) coutnumi+(*p+)t; coutendl;2468103. /递归#includevoid print(char ch) int i=0;if(ch=D)return;else print(ch+1); while(i+=ch-A) coutch; coutendl;void main() print(A);CCC BBA4. /函数指针参数#include void fun(int *x, int *y) cout*x=*xt;cout*y=*yt;*x
9、 = 3 ;*y = 4 ;void main() int x = 1, y = 2 ;fun(&y, &x);coutx=xt;couty=ytendl;*x=2 *y=1 x=4 y=3 高级语言程序设计 I 试卷 (A) 第 19 页 共 19 页四、程序填空题(每空2分,共20分)1. 假设90分以上为A等,80分到89分为B等,70分到79分为C等,60分到69分为D等,60分以下为E等。下面是输入一个分数,输出相应的五级制成绩的程序。#includevoid main()double score; coutscore; if( score 100 | score 0 ) cout
10、Input Error!; else switch( (1) ) / (1) (int) score/10 case 9: case 10: coutAn; break; case 8: coutBn; break; case 7: coutCn; break; case 6: coutDn; break; default: (2) ; / (2) coutEn; 2. 下面是显示如下图案的程序。1111111111 2222222 33333 444 5#includevoid main() int i , j, k ; for( i = 1; i = 5; i+ ) for( k = 1;
11、 (3) ; k+ ) / k=i-1 coutends ; for( j =1 ; (4) ; j+ ) /( 2*(5i)+1) cout (5) ; / i coutendl; 3下面的程序的输出结果是:4 3 2 1 10 9 8 7 6 5 #include void fun( (6) , int n , int m ) /int * s 或 int s int i , j , t ; i = n ; j = m ; while ( ij ) t=si; si=sj; sj=t; i+; j-; void main() int a10 = 1,2,3,4,5,6,7,8,9,10 ;
12、 fun( a , 0 , 3 ); fun( (7) ); / a,4,9 for ( int i = 0; i10; i+ ) cout ai ends; cout endl;4下面的程序运行时屏幕显示Please input i(110) : 键盘输入3后,屏幕显示程序运行结果如图1所示: 图1 程序运行结果#include int i ; void prints( (8) , int i ) / char * s cout (9) endl; / (s + i 1) cout (10) endl; / *( s + i );void main() int i ; cout i; pri
13、nts ( ABCDEFGHIJ, i );五、编程题(20分)1、设计程序,输入一个正整数i(256),求另一个正整数j,使i和j在用8位二进制表示时互为逆序。例如,输入i=3(00000011),应求得j=192(11000000)。#includevoid main() int i,j=0,k; couti; for(k=0;k8;k+) j=j*2+i%2; i/=2; coutj=jendl;2、以下程序由随机数生成一个整数序列,放在数组a中,然后按奇数在前,偶数在后的顺序重新排放。程序运行效果如图2所示。请编写函数RandAry和函数PutAry。#include#include#
14、includevoid RandAry(int *a, int n, int m);void PutAry(int *a, int n);void main() int *a, i, n; coutn; a=new intn; RandAry(a, n, 100); /用小于100的随机数对数组赋值 for(i=0; in; i+) coutai ;/输出原始序列 cout endl; PutAry(a,n);/整理数组,奇数放在前,偶数在后 for(i=0; in; i+) coutai ;/输出整理后序列 cout endl;图2 整理数据void RandAry(int *a, int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 C+ 程序设计 期末 考试卷 答案
限制150内