好文档 - 专业文书写作范文服务资料分享网站

c-c++习题二期末考试例题(附答案) - 图文 

天下 分享 时间: 加入收藏 我要投稿 点赞

C-C++语言程序设计单元测试(二)

班级: 学号: 姓名: 得分:

一、选择题

1. 以下能将字符串”good!”正确存放在字符数组s中,或使指针s能指向这个字符串的是( D)。

A. char s[4]={‘g’, ‘o’, ‘o’, ‘d’, ‘!’}; B. char s[5]; s=“good!”; C. int s[5]=“good!”; D. char *s; s=“good!”;

2. 对于程序段int k=3; while(k) k=k-1; 下面描述正确的是( A )。 A. 循环体执行3次 B. 该循环为无穷循环

C. 循环体执行一次 D. 循环体一次也不执行

3. 有下列变量说明:char a; int x; float y; double z; 则表达式a*x+z-y的值的数据类型为( D )。

A.float B.char C.int D.double 4.C语言中允许函数值类型缺省定义,此时该函数值隐含的类型是( D )。

A.float B.double C.void D.int 5. 若有定义:int a[ ]={2,4,6,8,10,12},*p=a;则*(p+1)的值是( B )。

A.2 B.4 C.10 D.12 6. 若有以下说明:int a[ ][3]={1,2,3,4,5,6,7};则数组a的第一维的大小是( B )。 A.4 B.3 C. 2 D.不确定 7. C++中struct和class的描述,错误的是( B)。 A. struct和class都可以包含数据和代码

B. struct不可以包含数据和代码,class可以包含数据和代码 C. struct中成员确实访问权限都是public D. class中成员确实访问权限都是private

8.下列有关类的描述不正确的是( D )。

A. 类是一类具体对象的抽象描述 B. 类的成员函数都拥有this指针 C. 类是数据和代码的复合体 D. 类中不能包含其他类的对象 9. ( D )不是构造函数的特征。

A. 构造函数的函数名与类名相同 B. 构造函数可以重载

C. 构造函数可以设置缺省参数 D. 构造函数必须指定类型说明 10. 公有继承时,子类成员函数可访问父类中的( B)和子类自己的公有成员。 A.非私有成员; B.公有成员; C.私有成员; D.保护成员;

二、程序分析题

1. 以下程序的运行结果 #!,,,* #include int main( ) {

int i;

for (i=1;i<=5;i++) switch(i%5) { case 0: cout<<\ case 1: cout<<\ case 2: cout<<\ default: cout<<\ } return 0; }

2.以下程序的运行结果是____result=1_____________________________________ #include using namespace std; f (int x,int n) {

int k; if(n==0) k=1; else k=f(x,n-1); return(k); }

int main() {

int x=1, n=3;

cout<<\ return 0; }

3. 以下程序的运行结果是( LBLMNP )

int main()

{ char a[80]=\ int i=0; strcat(a,b);

whi1e (a[i++]!='\\0') b[i]=a[i]; puts(b); return 0; }

三、程序填空题

1. 下面程序的功能是将字符串b复制到字符串a。完善程序。 #include

void strcopy(char *s,char *t) { int i=0;

while( s[i] !='\\0' ) s[i++]=t[i] ; *t!=’\\0’ }

main()

{ char a[21],b[21]; scanf(\

strcopy( a,b );

printf(\字符串b是%s\\n\ printf(\字符串a是%s\\n\}

2. 输入一个不包含空格的字符串,判断输入的字符串是否为回文。回文是相对中心左右对称的字符串。例如:level、abccba均是回文串。完善程序。 #include int f(char *p); main( )

{ char s[200];

printf(“输入一个字符串:”); scanf(“%s”, s);

if(f(s)) printf(“字符串%s是回文!”,s); else printf(“字符串%s不是回文!”,s); }

int f(char *p) {

char *p1, *p2; p1=p2=p;

while(*p2++); p2-- ; while( p1

{

if( *p1!=p2 ) return 0;

p1++; p2--; }

return 1; }

3. 以下程序分别求出方阵a中两个对角线元素之和。完善程序。 #define N 6

#include main( ) {

int a[N][N],i,j,k,pr1,pr2; for(i=0;i

scanf(\

pr1=pr2=0; for(i=0;i

pr1= pr1+*(*(a+i)+i); k= 2-i ; pr2=pr2+*(*(a+i)+k); }

printf(\}

4.以下程序的功能是删除字符串中的指定字符,其中,字符串和要删除的字符均由键盘输入,请完善代码。

#include int main() {

char str[80],ch; int i,k=0;

gets( str ); ch=getchar();

for(i=0; str[i]!='\\0' ;i++) if(str[i]!=ch) {

str[k] =str[i] ; k++; }

str[k]='\\0'; puts(str); }

四、程序设计题

1. 编写程序计算并输出下列多项式值。要求设计并调用函数double f(int n),由主函数传入

参数n的值,返回多项式的计算结果。

S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n) #include double f(int n) { int i; double sum=0;

for(i=1;i<=2*n;i++) sum=sum+(1.0/i); return sum; }

int main() { int n; double s; scanf(\ s=f(n); printf(\ }

2. 编程求解“百马百担”问题:有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,求大、中、小马各多少匹? #include int main() { int x,y,z,n,sum; n=0; for(x=1;x<=100/3;x++) { for(y=1;y<=100/2;y++) { z=100-x-y; if(z%2!=0) continue; sum=3*x+2*y+z/2; if(sum==100) { printf(\大马=匹,中马=匹,小马=匹\\n\ n++; } } } printf(\共有%d种方法\ }

3. 编写函数strcomb实现将一个字符串与另一个字符串相连。并在主函数中调用该函数实现两个字符串的连接。(注:不允许调用标准库函数strcat)。 #include

strcomb(char a[],char b[],char s[]) { int i,j; for(i=0;a[i]!='\\0';i++) s[i]=a[i]; for(j=0;b[j]!='\\0';j++) s[i+j]=b[j]; s[i+j]='\\0'; }

int main() { char a[50],b[50],s[100];

gets(a); gets(b);

strcomb(a,b,s);

printf(\

c-c++习题二期末考试例题(附答案) - 图文 

C-C++语言程序设计单元测试(二)班级:学号:姓名:得分:一、选择题1.以下能将字符串”good!”正确存放在字符数组s中,或使指针s能指向这个字符串的是(D)。A.chars[4]={‘g’,‘o’,‘o’,‘d’,‘!’};B.ch
推荐度:
点击下载文档文档为doc格式
74tbf06szc25ui718xfz9x6b742s6901dt8
领取福利

微信扫码领取福利

微信扫码分享