第一范文网 - 专业文章范例文档资料分享平台

C++语言06-07考试A试卷答案

来源:用户分享 时间:2025/5/31 17:58:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

同济大学本科课程期末考试统一命题纸 A卷

课程: 课号: 任课老师:

出考卷教师签名:

2006-2007学年第一学期

C++语言 专业:

姓名: 学号:

考试日期:

班级: 考查

教学管理室主任签字:

一、选择填空 (30分)

1) 下列变量名中,( D )是合法的。

A、a

D、_point 2) 若有以下定义:

char c; int a;float x; double y;

则表达式a-c+x/y值的类型为( D )。

A、 float B、 int C、 char D、 double

3) 在int b[3][3]={{1},{3,2},{4,5,6}};中,b[2][2]的值是( C )。 A、0 B、5 C、6 D、2 4) 用指针来表示数组中的某个元素时,下列表示中( A )是错误的。 已知:int x[5][8];int *p=x[0]; A、*(*(x++)); B、*(*x+3); C、*(p+32); D、*(&x[0][0]+2); 5) 下列给字符数组进行初始化中,( B)是正确的。 A、char s2[3]=“xyz”; B、char s1[]=“abcd”; C、char s3[3][]={‘a’,‘x’,‘y’};

D、char s4[2][3]={“xyz”,“abc”};

6) 已知int a,b; 下列switch语句中,( D )是正

确的。

A、switch(a) B、switch(a+b)

{case a:a++;break; {case 1:a+b;break;

case b:b++;break;} case 4*a:a-b;}

C、switch(a*a) D、switch(a/10+b)

{case 1,2:++a; {case 5:a/5;break;

case 3,4:++b; } default:a+b; }

7) 已知int a=3,b=0; !a&&a+b&&a++;a||b++||a+b;当

逻辑表达式执行完毕后,a和b的值分别为:( A )

A、3,0 B、3,1 C、4,0 D、4,1

8) 有以下程序

union { float x; char c; } a;

struct { float x; char c; } b; void main( ) { printf(\

程序输出结果是( B )。

A、5,5 B、4,5 C、 5,4 D、4,4 9) 对于int (*pa)[5];的描述,( A )是正确的。

A、 pa是一个指向数组的指针,所指向的数组有5个int型元素; B、 pa是一个指向某数组中第5个元素的指针, 该元素是int型变量; C、 pa[5]表示某个数组的第5个元素的值; D、 pa是一个具有5个元素的指针数组,每个元素是一个int型指针; 10) 以下叙述中( C )是错误的。 A、在函数之外定义的变量是全局变量。 B、在函数体和复合语句内定义的变量是局部变量。 C、同一函数内局部变量不允许同名; D、函数的形参属于局部变量。 二、写出下列各程序运行时的输出结果 (50分)

1. #include void main() { int a=1,b=2; printf(\ printf(\ printf(\} 1,3,2,3 2.

#include

void main( )

{ char x=?x?,y=?y?; int a; a=x9)+(y-x = = 1);

printf(“%d\\n”,a); } 1 1 3 3.

#include void main() { int a,b,c; a=b=c=1; a=++b + ++c;

printf(\ a=b++ + c++;

printf(\ a=++b + c++;

printf(\

printf(\} 4,2,2 4,3,3 7,4,4 8,4,1 4.

#include void main() { int i=1,j=2,k=3,a=10; if(!i) a--; else if(j) if(k) a=5; else a=6; a++; printf(\ if(i

#include

void func(int *a,int b[]) { b[0]=*a+6; *a=b[1];} void main()

{ int a,b[5]={2,4,6,8,10};

a=0;

func(&a,b);

printf(\ } 4,6

6.

#include int w=1; void f(int x) { x=w;

w+=x; } void main() { w=5; f(w);

printf(\} 10 7.

#include void main() { int i,j,x=0;

for(i=2;i>0;i--) { x++;

for(j=0;j<=3;j++) { if(j%2)continue;

x++; } x++; }

printf(\} x=8 8.

#include

void swap(int *p1,int *p2) { int *p;

p=p1;p1=p2;p2=p; } void main()

{ int a=7,b=8; swap(&a,&b);

printf(\ } 7,8 9.

#include int x=3,y=6,z=9; typedef struct { int num;

int *p; } ST; ST *ss;

ST array[3]={1001,&x,1002,&y,1003,&z}; void main() {

ss = &array[0];

for(;ss

printf(\}

1001,3 1002,6 1003,9

10.

#include void fun (int *p,int n) { int t; for(int i = 0;i< n/2;i++) { t = *(p+i); *(p+i) = *(p+n-i-1); *(p+n-i-1) = t; } }

void main() { int a[5] ={1,3,5,7,9}; fun(a,5); for(int i=0;i<5;i++) printf(“%d\\n”,*(a+i)); }

9 7 5 3 1

三、编程 (20分)

1) 根据函数原型定义,写出实现矩阵相加的函数程序

#include

void Matrix_add(int *,int *,int *,int); //函数声明 void main() { int i,j; int a[3][3]={ {1,2,3}, {4,5,6}, {7,8,9} }; int b[3][3]={ {1,0,0}, {2,2,0}, {3,3,3} }; int c[3][3]={0}; Matrix_add(a[0],b[0],c[0],3); for (i=0; i < 3; i++) { for (j=0; j < 3; j++) printf(\ printf(\}

// 函数程序写在下面空白处

void Matrix_add(int *a,int *b,int *c,int n) { int i,j;

for(i=0;i

2) 根据函数原型定义,写出实现将字符串str1复制到字符串str2中的函数程序 #include

void string_copy(char *,char *); //函数声明

void main() { char str1[]=\

char str2[32];

string_copy(str1,str2); printf(\}

// 函数程序写在下面空白处

void string_copy(char *str1,char *str2) { for( ; *str1 != ?\\0?; str1++,str2++) *str2 = *str1;

*str2 = ?\\0?; }

搜索更多关于: C++语言06-07考试A试卷答案 的文档
C++语言06-07考试A试卷答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4djpi56pmi5ap1c1l9gj_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top