1、高级语言程序设计(C+I)题库一单项选择题(每小题2分,共20分)1下列字符列中,合法的浮点型常量是:(A) 457(B) 6e5.3(C) e7(D) 123e62字符串常量 ”wx42nx103y” 的长度是:(A) 7(B) 11(C) 15(D) 163以下运算符中,自右向左结合的运算符是:(A) (B) =(C) *=(D) 4表达式4/8*100/2.0的值是:(A) 25(B) 25.0(C) 0(D) 0.05设变量int a = 5; 下列哪个表达式计算后,使得变量b的值不为2 ?(A) b=a/2(B) b=6-(-a)(C) b=a%2 (D) b=a3?3:26设a是整
2、型变量,不能表达数学关系式11a11&a15(B) a=12|a=13|a=14(C) !(a=15)(D) 11as1;(B) char *s1,*s2=”name”; s1=s2;(C) char s15=”name”;(D) char s15=”name”;8一个具有6个整型指针元素的一维数组的正确定义是:(A) int *p6(B) int *(p)6(C) int *p6(D) *(*(p)6)9执行语句 x=1; while(x+7)cout*; 后输出结果是:(A) *(B) *(C) *(D) *10若用一维数组名作为调用函数时的实参,则传递给形参的是:(A) 数组首元素的地址
3、 (B) 数组首元素的值(C) 数组元素的个数 (D) 数组中全部元素的值二简答题(每小题2分,共20分)1设整型变量x为任何一个整数,表达式 2x2 的值是? 2调用函数时,希望从提供的实参变量中得到函数的结果,则对应的形参应该是? 3设有变量定义 char *s=“Beijing”,”Shanghai”,”Guangzhou”; 执行语句cout*(s+1)+1; 输出是?4表述“变量x的值等于3”和“变量y的值等于5”其中有且只有一种情况成立的表达式是?5设有变量定义int a43,*p=a2; 表达式 p+2 指向的元素是? 6将字符串str2拷贝到字符数组str1中,应调用函数?7说
4、明语句 char *w(); 的含义是? 8表达式 new int10 的含义是? 9设有函数调用语句 Count(a ,num,max,min,average); 功能是由参max, min, average返回整型数组a前num个元素中的最大值,最小值和平均值。对应的函数原型是?10有说明 struct link int code; link *next; ; link *head,*p;已知head为单链表的头结点,在*head之后插入*p结点操作的语句是?三分析程序,写输出结果(每小题5分,共20分)1 #includevoid main() int a10=2,4,0,-5,10,6
5、,-8,9,6,7; int i,s=0,count=0; for(i=0;i0) s+=ai,count+; else continue; couts=s count=countendl;2 #includevoid fun();void main()int i; for(i=1;i5;i+) fun(); coutendl;void fun()static int a; int b=2; cout(a+=3,a+b)t;3 #includeint lcm(int m, int n) int r,a,b; a=m; b=n; r=m; do m=n; n=r; r=m%n; while(r)
6、; return a*b/n;void main() coutlcm(3,7)tlcm(4,6)endl; 4 #include void printN(int n) if(n) printN(n-1); cout n ends ; void print(int w) if( w ) print( w-1 ); printN(w); cout endl; void main() print( 5 ); 四根据程序功能填空。(每空2分,共20分)1本程序按以下公式计算e的值,精度为1e-6。#includevoid main() double e,t,n; e=0;t=n=_(1)_; whil
7、e(_(2)_) e+=t; _(3)_; n=n+1.0; coute=eendl;2本程序由主函数输入一字符串,调用函数,把该字符串中的数字09转换成小写字母aj;所有小写字母转换成大写字符。然后在主函数输出转换后的字符串。#include#include_(4)_void main()char str120, str220; cinstr1; change(str1,str2); coutstr2=0&*s1p-data; while(p-data!=0) if(head=NULL) head=p; head-next=NULL; else _(9)_(10)_ p=new node;
8、cinp-data; 五程序设计(第1小题6分,第2、3小题各7分,共20分)1 编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。# # # # # # # # # # # #2 编写一个程序,实现如下功能:(1)输入k(100)个整数到数组x100中;(2)计算k个数的平均值及大于平均值的元素个数。3 编写一个程序,实现如下功能:(1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/ 。(2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。高级语言程序设计(C+I)练习题参考答案一单项选择题(每小题2分,共
9、20分)1下列字符列中,合法的浮点型常量是:(A) 457(B) 6e5.3(C) e7(D) 123e62字符串常量 ”wx42nx103y” 的长度是:(A) 7(B) 11(C) 15(D) 163以下运算符中,自右向左结合的运算符是:(A) (B) =(C) *=(D) 4表达式4/8*100/2.0的值是:(A) 25(B) 25.0(C) 0(D) 0.05设变量int a = 5; 下列哪个表达式计算后,使得变量b的值不为2 ?(A) b=a/2(B) b=6-(-a)(C) b=a%2 (D) b=a3?3:26设a是整型变量,不能表达数学关系式11a11&a15(B) a=1
10、2|a=13|a=14(C) !(a=15)(D) 11a=14对C+表达式 11a15 的计算: 11a 0 或1 015 1 或 1s1;(B) char s1=”name”; /s1是字符变量,不能赋给串值(C) char s15=”name”;(D) char s1=”name”;8一个具有6个整型指针元素的一维数组的正确定义是:(A) int *p6(B) int (*p)6(C) int *p6(D) *(*(p)6)试比较以下几种说明形式:int * p;/ p是指向整型变量的指针(p是关联类型为整型的指针)int *pa10;/ pa是数组,元素类型是整型指针int (*pb)
11、10;/ pb是指针,指向(关联类型)长度为10的整型数组int * f();/ f是返回整型指针的函数名int (*f)();/ f是指针,指向(关联类型)是返回整型值的无参函数例:有声明int (*f)(int int); int max(int,int); int min(int, int);则:f=max;f(a,b);/等价于 (*f)(a,b); max(a,b); f=min;f(a,b);/等价于 (*f)(a,b); min(a,b);9执行语句 x=1; while(x+7)cout*; 后输出结果是:(A) *(B) *(C) *(D) *(x+7) x7 x=x+110
12、若用一维数组名作为调用函数时的实参,则传递给形参的是:(A) 数组首元素的地址 (B) 数组首元素的值(C) 数组元素的个数 (D) 数组中全部元素的值二简答题(每小题2分,共20分)1设整型变量x为任何一个整数,表达式 2x2 的值是? 1 2调用函数时,希望从提供的实参变量中得到函数的结果,则对应的形参应该是? 指针或引用类型参数注意使用方法:函数定义调用void fun1(int x1);int a1; fun1(a1);/传数据值参数void fun2(int * x2);int a2; fun2(&a2);/指针参数,传地址值void fun3(int & x3);int a3; f
13、un3(a3);/引用参数,传名以上参数用于操作数据对象void fun4(int * &x4);int *a4; fun3(a4);/指针引用参数,传名以上参数用于操作指针对象3设有变量定义 char *s=“Beijing”,”Shanghai”,”Guangzhou”; 执行语句coutnext=head-next; head-next=p;/ p-next = (*p).next head *head q p *p思考:(1) 结点插在表头如何操作?p-next=head; head=p;(2) 结点插在表尾如何操作?q=head; while(q-next)q=q-next; q-n
14、ext=p; p-next=NULL;(3) 遍历链表,输出结点值:q=head; while(q-next)coutcode; q=q-next;(4)删除一个结点*(q-next)如何操作?t = q-next; q -next = t-next; delete t; q t三分析程序,写输出结果(每小题5分,共20分)1求0的元素和;0的元素个数。#includevoid main() int a10=2,4,0,-5,10,6,-8,9,6,7; int i,s=0,count=0; for(i=0;i0) s+=ai,count+; else continue; couts=s co
15、unt=countendl; s=44 count=72 测试静态变量和自动变量。静态变量第一次自动初始化为0,再调用时不改变。#includeaba+=3a+b0235326862911921214void fun();void main()int i; for(i=1;i5;i+) fun(); coutendl; void fun()static int a; int b=2; cout(a+=3,a+b)t;5 8 11 143求最小公倍数#includeint lcm(int m, int n) int r,a,b; a=m; b=n; r=m; do/辗转相除法,求最大公约数 m=
16、n; n=r; r=m%n; while(r); return a*b/n;/求最小公倍数void main() coutlcm(3,7)tlcm(4,6)endl;21124输出数字三角型,以递归方式建立程序。#include void printN(int n) if(n) printN(n-1); cout n ends ; void print(int w) if( w ) print( w-1 ); printN(w); cout endl; void main() print( 5 ); 11 21 2 31 2 3 41 2 3 4 5四根据程序功能填空。(每空2分,共20分)1
17、本程序按以下公式计算e的值,精度为1e-6。#includevoid main() double e,t,n; e=0;t=n=_(1)_;1.0 while(_(2)_)t=1e-6 e+=t; _(3)_; t=t/n n=n+1.0; coute=eendl;2本程序由主函数输入一字符串,调用函数,把该字符串中的数字09转换成小写字母aj;所有小写字母转换成大写字符。然后在主函数输出转换后的字符串。#include#include_(4)_void change(char*, char*);void main()char str120, str220; cinstr1; change(s
18、tr1,str2); coutstr2=0&*s1p-data; while(p-data!=0) if(head=NULL) head=p; head-next=NULL; else _(9)_ p-next = head;_(10)_ head = p; p=new node; cinp-data; 五程序设计(第1小题6分,第2、3小题各7分,共20分)4 编写函数输出以下形状的图形,其中构成图形的符号和输出的行数通过参数传送。# # # # # # # # # # # #答案:#include#includevoid print_figure(int row, char tag)/行参
19、数和符号参数int i; coutsetw(row-1) tagendl;/输出第1行 for(i=2;irow;i+)/输出第2行到row-1行 coutsetw(row-i) tagsetw(2*(i-1)-1) tagendl; for(i=1;i=2*row-1;i+)couttag;/输出最后1行 coutendl;void main() print_figure(5,*);5 编写一个程序,实现如下功能:(1)输入k(100)个整数到数组x100中;(2)计算k个数的平均值及大于平均值的元素个数。答案:#includevoid main()int x100,k,i,n; doubl
20、e sum=0.0,ave; coutk; for(i=0;ixi; sum+=xi; ave=sum/k;/求平均值 n=0; for(i=0;iave) n+; coutaverage=aven; coutThere are n elements large than average.n;6 编写一个程序,实现如下功能:(1)从键盘输入a op b。其中a, b为数值;op为字符,限制为+、-、*、/ 。(2)调用函数count(op,a,b),计算表达式a op b的值。由主函数输出结果。答案:#includedouble count(char, double, double);void
21、 main()double a,b; char op; coutaopb; if(op!=+&op!=-&op!=*&op!=/) coutinput error,please again:n; else break; while(1); coutaopb=count(op,a,b)endl;double count(char op, double a, double b) switch(op) case +: return a+b; case -: return a-b; case *: return a*b; case /: return a/b; 迈向未来的五种人受过专业训练的人善于整合的人有创造性的人尊重别人的人有道德的人高级语言程序设计 第 13 页 共 13 页
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100