东南大学C程序设计上考试卷A卷.doc

  • 格式:doc
  • 大小:277.04 KB
  • 文档页数:11

自 觉 遵 守 考 场 纪 律

如 名 姓

试 作 弊

此 答 卷 无 效

号 学

东 南 大 学 C++程 序 设 计 ( 上 ) 考 试 卷 ( A 卷 )

课 程 名 称 考 试 学 期 得分 适 用 专 业 电类、非电类 考 试 形 式 闭卷 考试时间长度 100 分钟

(一) 选择题(每空 2 分;共 20 分) 1. 设有说明“ int i=10;float x; ”, 执行“ x=5/i; ”后 ,x 的值为 _____ A. 0.5 B. 0 C. 1.0 D. 以上皆否

2. 在 while(!a) 中;其中 !a 与表达式 __________等价。 A. a==0 B. a==1 C. a!=1 D. a!=0

线 3. 下面的整型常数中错误的是 __________。

A. 123 B. 380 C. 038 D. 0xAF

4. 以下 __________不能用作标识符 A. a6.3 B. _1234 C. GetName D. b_tree

封 5. 设以下变量均为 int 类型;则值不等于 10 的表达式是 ________。 A.x=y=9,x+y,x+1 B .x=y=9,x+y,y+1 C.x=9,y=1,y=x,x+y D.y=9,y+1,x=y,x+1

6. 若定义函数; int f(int x) {x*=10;return x;} 执行以下语句; int 密 a=3,b;b=f(a) + f(a)之后 a,b 的值是 ________。

A.3,30B.30,60 C.300,330 D .3,330

7. 已知 int i=0;while(i++!=7); 当 while 循环结束后;变量 i 的值为

________。 A.5 B.6 C .7 D .8

8. 表达式 __________是满足:当 c 的值为 1、 3、 5 三个数时值为“真” ;否则值为“假”的表达式 A. (c=1)||(c=3)||(c=5) B . (c!=1)&&(c!=3)&&(c!=5)

C. (c==1)&&(c==3)&&(c==5) D . (c==1)||(c==3)||(c==5)

1 / 11 9. 对于 C++的函数 , 正确的叙述是 __________________ A. 函数的定义不能嵌套 , 但函数的调用可以嵌套 B. 函数的定义可以嵌套 , 但函数的调用不能嵌套 C.函数的定义和调用都不能嵌套 D.函数的定义和调用都能嵌套

10. 若 定 义 函 数 时 未 指 定 函 数 的 返 回 类 型 ; 则 函 数 的 返 回 类 型 为 _______________ A.void B .int C . double D.编译出错

(二) 填空题(每空 1 分;共 10 分)

1.已知小写字母 A 的 ASCII 码值是 65;则下列语句执行后输出是 char c = 66;cout<

2. 设 y 是 int 型变量;判断 y 为奇数的关系表达式为 _______________。 3. 整型变量 n 的当前值是 6;执行以下 switch 语句后 n 的值是 switch(n){ case 6: ++n; case 7: n--; case 8: ++n; default: n/=2; }

4. 全局与静态变量在程序运行时自动初始化为 5. 已知 x 为 double 型;执行语句 (float)x 之后; x 为 类型。

6. break 语句只能用在循环语句和 ______________语句中。

2 / 11 7. 变 量 可 分 为 局 部 变量 和全 局 变 量 ; 其 中全 局 变 量 的 作 用域 范围 ______________

8. 函数具有相同的函数名; 但具有不同的参数个数或不同的参数类型; 编译系统根据不同的参数去调用不同的函数;称 ____________函数。

9. 有整型变量 a、b;则下列 for 循环中的输入语句 最多可执行 __________ 次 for(a=0,b=0;b!=10&&a<5;a++) cin>>b;

10. 若有下列程序;则程序运行后的输出是 #include using namespace std; void f(int); int main() { f(123);

return 0; } void f(int n) { if(n >= 10) f(n/10); cout<}

(三)阅读程序并填空(每空 2 分;共 30 分) 1. 有程序如下: void main (void) { for(int i=1;i<7;i++) if(i%3==0) break; cout<

3 / 11 for(i=1;i<7;i++) if(i%3==0) continue; cout<} 请问:程序输出为 。

2. void main() { int a,b,c; a=2,b=3,c=1; if(a{if (a>c) cout

3. 写出下列程序段运行时的输出结果 void count(int x){ cout<<(x%10)%10<} void count(int x,int y){ cout<<(x%10)%10<<(x-x%y)/y; } void main(void){ int a=285,b=369; cout<<" 原整数: "

4 / 11 4. 写出下列程序的输出结果。 void main(void){ int a,b; for(b=1,a=1;b<=50;b++) { if(a>=10) break; if(a%2==1) { a+=5; continue; } a-=3; } } 执行完毕之后 a 和 b 的值分别是 ___________和 _______________

5、设有如下程序 int m=10; //A

int f(int x,int y) { int m=5; //B

m+=x*y; //C return m; //D } void main() { int a=6,b=7; cout<} 执行完毕之后的输出结果是 _________________

5. 设有如下程序。 void main() { char c; cin>>c; if(c<='z'&&c>='a')

5 / 11 c=c-'a'+'A'; if(c<='Z'&&c>='A') c=c-'A'+'a'; cout<

} 程序执行后 , 若输入英文字母’ B’, 则程序输出 _______________;若输入英文 字母’ b’, 则程序输出 _______________。

6. 阅读下列程序

#include using namespace std; int a,b; void f(int j){ static int i=a; // 注意静态局部变量

int m,n; m=i+j; i++; j++; n=i*j; a++; cout<<"i="

合集下载

C++上机考试题,上机练习,东南大学C++上机实验

C++上机考试题,上机练习,东南大学C++上机实验

定义一个复数类,通过重载运算符:=、+=、-=、+、-、*、/、= =、!=,直接实现两个复数之间的各种运算。

编写一个完整的程序(包括测试各运算符的程序部分)。

*/#include "stdio.h"//标准输入输出头文件#include "iostream.h"class Complex{float Real,Image;public:Complex(float r=0,float i=0){Real=r;Image=i;};float GetR(){return Real;}float GetI(){return Image;}//后面主函数要直接调用私有成员数据void show(){cout<<"Real="<<Real<<'\t'<<"Image="<<Image<<endl;}Complex operator +(Complex &);//把形参定义为引用,调用时更方便void operator +=(Complex &);//自加运算,返回值为voidComplex operator -(Complex &);void operator -=(Complex &);Complex operator *(Complex &);Complex operator /(Complex &);void operator =(Complex &);int operator !=(Complex &);int operator ==(Complex &);//返回真假};Complex Complex::operator +(Complex &c)//此时的函数名变为Complex::operator{Complex t;//在函数体内可以定义新的类,并把这个临时的类返回,同样用打点来访问t.Real=Real+c.Real;t.Image=Image+c.Image;return t;}void Complex::operator +=(Complex &c){Real=Real+c.Real;Image=Image+c.Image;}Complex Complex::operator -(Complex &c) {Complex t;t.Real=Real-c.Real;t.Image=Image-c.Image;return t;}void Complex::operator -=(Complex &c){Real=Real-c.Real;Image=Image-c.Image;}Complex Complex::operator *(Complex &c) {Complex t;t.Real=Real*c.Real-Image*c.Image;t.Image=Real*c.Image+Image*c.Real;return t;}Complex Complex::operator /(Complex &c) {Complex t;t.Real=Real*c.Real+Image*c.Image;t.Image=-Real*c.Image-Image*c.Real;float val=c.Real*c.Real+c.Image*c.Image;t.Real=t.Real/val;t.Image=t.Image/val;return t;}void Complex::operator =(Complex &c){Real=c.Real;Image=c.Image;}int Complex::operator !=(Complex &c){int res;//函数体内定义临时变量res=(c.Real!=Real)&&(c.Image!=Image);return res;}int Complex::operator ==(Complex &c){int res;res=(c.Real==Real)&&(c.Image==Image);return res;}void main(){Complex a(3,4),b(6,8),c,d;c=a;//赋值=c.show();d=a+b;//+d.show();c=b-a;//-c.show();c=b;c+=a;//+=c.show();d=b;d-=a;//-=d.show();//c=a;d=a;cout<<endl<<"输出c和d: \n";if(c==d) {c.show();d.show();cout<<"c==d";}c=b;d=a;cout<<endl<<"输出c和d: \n";if(c!=d) {c.show();d.show();cout<<"c!=d";}//cout<<endl;cout<<"a*b: ";c=a*b;c.show();cout<<"\na/b: ";d=b/a;d.show();}//在函数体内可以定义新的类,并把这个临时的类返回,同样用打点来访问/*四、下标运算符[ ]通常用于取数组中某个元素,可以实现数组下标越界的检测等。

2022年东南大学公共课《C语言》科目期末试卷A(有答案)

2022年东南大学公共课《C语言》科目期末试卷A(有答案)

2022年东南大学公共课《C语言》科目期末试卷A(有答案)一、填空题1、请读程序段:int a=-1;a=a|0377;printf("%d,%o\n",a,a);以上程序段的输出结果是_______。

2、结构化程序由________、________ 、________ 3种基本结构组成。

3、一个C语言源程序由若干函数组成,其中至少应含有一个________4、C语言中的标识符可分为关键字、_______和_______3类。

5、若有定义语句:int m=5,y=2;则执行表达式y+=y-=m*=y后的y值是_______6、若有定义:int a[]={2,4,6,8,10,12,14,16,18,20,22,24},*q[3],k;则下面程序段的输出是_______。

for(k=0;k<3;k++)q[k]=8.a[k*4];printf("%d\n",q[2][3]);7、下面程序段中循环体的执行次数是_______。

a=10;b=0;do{b+=2;a-=2+b;}while(a>=0);8、设有以下定义和语句,请在printf语句的_______中填上能够正确输出的变量及相应的格式说明。

union{int n;doublex;}num;num.n=10;num.x=10.5;printf("_______",_______);9、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正确的输入形式是_______。

char cl,c2;scanf("%4c%4c",&cl,8&c2);10、字符串"ab\n\\012\\\"”的长度是_______。

二、选择题11、在C语言中,char型数据在内存中的存储形式是()。

A.补码B.反码C.原码D.ASCII码12、以下表达式值为3的是( )A.16-13%10B.2+3/2C.14/3-2D.(2+6)/(12-9)13、根据以下定义语句和数据的输入方式,scanf语句的正确形式应为。

东南大学2006年06月C++(下)非电类A卷

东南大学2006年06月C++(下)非电类A卷

东南大学考试卷( A 卷)Array课程名称C++程序设计考试学期05-06-3 得分适用专业非电类考试形式闭卷考试时间长度100分钟一、单项选择题(10分)1、以下关于C++语言中数组的描述正确的是。

(A)数组的大小是固定的,但可以有不同类型的数组元素(B)数组的大小是可变的,但所有数组元素的类型必须相同(C)数组的大小是固定的,所有数组元素的类型必须相同(D)数组的大小是可变的,可以有不同类型的数组元素2、下列关于指针的操作中,错误的是。

(A)两个同类型的指针可以进行比较运算。

(B)可以用一个空指针值赋给某个指针变量。

(C)一个指针可以加上两个整数之差。

(D)两个同类型的指针可以相加。

3. 关于字符串,以下陈述错误的是。

(A)字符型二维数组可以存储多个字符串。

(B)输出一个字符串时,不需要使用循环输出每个字符。

(C)使用库函数strlen求出的串长度包括串结束符。

(D)字符型指针可以在定义时赋予一个字符串常量的存储地址。

4. 若a是n行m列的数组,则元素a[x][y]是数组的第_________个元素。

(A)x*m+y (B)x*m+y+1 (C)x*n+y (D)x*n+y+15.以下不属于构造函数的特点是_______________。

(A) 具有与类名相同的函数名(B) 允许设置返回值(C) 允许重载(D) 在定义类的对象时自动调用6. 关于动态内存分配,对delete运算符的下列说法中,是错误的。

(A)应与new运算符配合使用。

(B)可以在类的成员函数中使用。

(C)对同一个指针变量可任意多次使用该运算符。

(D)若a是一个二维数组,则delete []a; 可删除a所占用的存储空间。

7. 关于运算符重载,下列叙述正确的是_____________。

(A)重载不能改变算术运算符的结合性(B)重载可以改变算术运算符的优先级(C)所有的C++运算符都可以被重载(D)运算符重载用于定义新的运算符8. 下列描述中,正确的是_____________。

C语言程序设计(A卷)-参考答案及评分细则

C语言程序设计(A卷)-参考答案及评分细则

重庆邮电大学2014-2015学年1学期C语言程序设计试卷(期末)(A卷)(闭卷)参考答案及评分细则(计算机科学与技术、信息安全卓越工程师班)一、基础知识测试题(本大题共15小题,每小题4分,共60分)二、编程题(本大题共3小题,共40分)1 (8分)#include <stdio.h>void main() (1分) { int i,j,k,count=0; (1分) for(i=1;i<=10;i++) (1分)for(j=1;j<=20;j++) (1分){ k=50-i-j; (1分)if(i*10+j*5+k==100) (1分){ count++; printf("10元%d张,5元%d张,1元%d张\n",i,j,k); (1分)}}printf("总共有%d种方案\n",count); (1分) }C语言程序设计试卷参考答案及评分细则第1页(共2页)2(12分,自定义函数8分,主函数4分)#include <stdio.h>int BePalindrome(char *str) (1分) { char *p,*q; (1分) p=q=str;while(*q) q++; (1分)q--;while(p<q) (2分){ if(*p!=*q) (1分)return 0;p++; (1分)q--;}return 1; (1分) }void main() (1分) { char a[80]; (1分) printf("Input a string:");gets(a); (1分)if(BePalindrome(a)) (1分)printf("是回文!\n");elseprintf("不是回文!\n");}3(20分)#include <stdio.h>#include <stdlib.h>#define N 30#define M 10typedef struct Player (2分){ int id;char name[10];float score;}PLAYER;void main() (1分){ PLAYER users[N]; (1分)int i,j;float m,s;FILE *fp; (1分)//输入评委打分printf("Please input user's score:\n");for(i=0;i<N;i++) (2分){ printf("Input id and name:"); (1分)scanf("%d%s",&users[i].id,users[i].name);printf("Input %d scores:",M);for(j=0,s=0;j<M;j++) (1分){ scanf("%f",&m);s+=m;}users[i].score=s/M; (1分)}//排序for(i=0;i<N-1;i++) (2分)for(j=i;j<N;j++) (2分)if(users[i].score<users[j].score) (1分){ PLAYER t;t=users[i];users[i]=users[j];users[j]=t;}//输出前三名到文件fp=fopen("result.txt","w"); (1分)if(fp==NULL) (1分){printf("error!\n");exit(0);}for(i=0;i<3;i++) (2分){fprintf(fp,"No.%d:%d %s %.2f\n",i+1,users[i] .id,users[i].name,users[i].score);}fclose(fp); (1分)}C语言程序设计试卷参考答案及评分细则第2页(共2页)C语言程序设计试卷参考答案及评分细则第3页(共2页)。