上海交大C++程序设计试题集(含答案)

2019-03-28 20:51

程序设计试题集

一、 单项选择题

1.1.定义一个具有10个元素的整型数组,应当使用代码是

A.int a[10]; B.int a[2, 5]; C.int a[]; D.int *a[10];

1.2.设int a = 8, b = 7, c = 6, x = 1;执行以下语句后x的值是 if (a > 6) if (b > 7) if (c > 8) x = 2; else x = 3;

A.0 B.1 C.2 D.3

1.3.下列代码中,正确的数组定义是

① int a[ ] = {―string‖}; ② int a[5] = {0, 1, 2, 3, 4, 5}; ③ char a = {―string‖}; ④ char a[ ] = {0, 1, 2, 3, 4, 5}; A.① B.② C.③ D.④

1.4.字符串‖abc\\x43\\\\\\np\\102q‖的长度是 A.9 B.12 C.13 D.17

1.5.执行下列程序后,输出的结果是

#define M(a, b) (a) > (b)?(a)+(b):(a)-(b) void main()

{ int i = 10, j = 15; printf(―%d\\n‖, 10*M(i, j)); } A.10 B.25 C.250 D.-50

1.6.执行下列程序后,输出的结果是

#define M(a, b) (a) > (b)?(a):(b)

void main()

{ int i = 10, j = 5; printf(―%d\\n‖, M(i, j)*10); } A.10 B.5 C.100 D.150

1.7.计算立方数时,不可能引起二义性的宏定义是

A. #define S(x) x*x*x B.#define S(x) (x)*(x)*(x) C.#define S(x) (x*x*x) D.#define S(x) ((x)*(x) *(x))

1.8.下列代码中,正确的是

A. char a[3][ ] = {?abc‘, ?1‘}; B. char a[ ][3] = {?abc‘, ?1‘}; C. char a[3][ ] = {―ab‖, ―12‖}; D. char a[ ][3] = {―ab‖, ―12‖};

1.9.设char str1[10] = ―ABCDE‖, str2[10] = ―xyzuvw‖; 则执行以下语句后的输出结果是

printf(―%d‖, strlen(strcpy(str1, str2))); A.12 B.11 C.8 D.6

1.10.以只写方式打开一个二进制文件,应选择的使用方式是

1--34 注:解答写在答卷纸上,试卷中的解答不评分

A.‖a+‖ B.‖w+‖ C.‖rb‖ D.‖wb‖

1.11.设int x = 8, y, z; 执行y = z = x--; x = y == z后,变量x的值是 A.0 B.1 C.8 D.9

1.12.设变量m ,n ,a ,b ,c ,d均为0,执行(m = a==b)||(n=c==d)后,m ,n的值是 A. 0 ,0 B. 0 ,1 C. 1 ,0 D. 1 ,1

1.13.设int x[ ] = {2, 6, 5, 7, 9, 15, 12}, *p = x; 则不能正确引用数组元素的表达式是

A.*(p--) B.*(--p) C.*(p++) D.*(++p)

1.14.根据变量定义“static int b[5];”,b[4]的值是。 A.1 B.0 C.2 D.不确定

1.15.设int a = 9, b = 8, c = 7, x = 5;执行语句 if (a > 7) if (b > 8) if (c > 9) x = 3; else x = 4; 后x的值是

A.1 B.5 C.3 D.4

1.16 下列字符列中,可以作为“字符串常量”的是 A. ABC B. \ABC\′abc′ D. ′a′

1.17下列数据类型中,不属于构造类型是

A. 实型 B.数组型 C.结构型 D.联合(共用)型

1.18下面所列常量中,都是C语言整型常量的是。

A. 0xffff 和 611 B.01b 和 0xa1 C.986.012 和 0667 D.2e4 和 0x

1.19若有以下变量定义和输入语句,要求a1、a2、c1和c2的值分别为10、20、A和B。是正确的输入方式。

int a1, a2; char c1, c2;

scanf(″%d%c%d%c″, &a1, &c1, &a2, &c2)

A. 10 A 20 B↙ B.10 A 20B↙ C.10A 20 B↙ D.10A 20B↙

1.20 若变量b的值为3,则执行语句 b += b -= b*b后,变量b的值是( )。 A. 3 B.0 C.-12 D.9

1.21 若a、b和c均为整型变量,则执行以下语句后,变量a、b和c的值为( )。 a = 0; b = 2; c = 1; a++ && ++b || ++c

A.1、3、2 B.0、3、2 C.1、2、2 D.0、2、2

1.22 将数学公式√|yx + ey| 写成C表达式,正确的是。 A.sqrt(abs(pow(x, y) + exp(y))) B.sqrt(abs(pow(y, x) + exp(y)))

2--34 注:解答写在答卷纸上,试卷中的解答不评分

C.sqrt(fabs(pow(x, y) + exp(y))) D.sqrt(fabs(pow(y, x) + exp(y)))

1.23 函数调用时,下列说法中不正确的是

A. 形参不分配内存 B.实参和形参可以同名 C.主调函数和被调用函数可以不在同一个文件中 D.函数可以使用全局变量

1.24 若有变量定义:“int i, j = 7, *p = &i;”,则与“i = j;”等价的代码是 A. i = *p; B. *p = *&j; C. i = &j; D. i = **p;

1.25 若希望存储字符串,下列各代码中,正确的是

A. char s[5] = {\′A′, ′B′, ′C′, ′D′, ′E′}; C. char *s; s = \

1.26 设有代码“int a = 3;”,则执行了语句“a += a -= a * a ;”后,变量a的值是 A. 3 B. 0 C. 9 D. –12

1.27 设有如下定义,则正确的叙述为

char x[ ] = \, y[ ] = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}; A.x和y的长度和内容相同 B.x和y的长度相同

C.x的长度大于y的长度 D.x的长度小于y的长度

1.28 设a,b为字符型变量,执行scanf(\a=%c,b=%c\, &a, &b)后使a为',A',,b为',B',,从键盘上的正确输入是

A. 'A''B' B.'A', 'B' C.A=A,B=B D. a=A,b=B

1.29若有以下的定义,则值为3的表达式是

int a[ ] = {1,2,3,4,5,6,7,8,9,10}, *p = a; A.p+=2,*(p++) B.p+=2, *++p C.p+=3, *p++ D.p+=2, ++*p

1.30设a为5,执行下列代码后,b的值不为2的是

A. b = a/2 B. b = 6-(--a) C. b = a%2 D. b = a < 3 ? 3: 2

二、填空题

2.1.设 int x[ ] = {1, 2, 3, 4}, y, *p = &x[1];则执行语句: y = (*--p)++; 后变量y的值为▁▁▁▁ 。

2.2.下面函数的功能是寻找链表h中最大值,并返回。试给出其中空框中的代码。

struct node { int val; struct node *next;}; int traveLink(struct node *h) { struct node *p; int m;

for(m = h->val, p = h; p != NULL; ▁▁▁▁) if(▁▁▁▁) m = p->val; return m; }

3--34 注:解答写在答卷纸上,试卷中的解答不评分

2.3.下面函数的功能是寻找链表h中最小值,并返回。试给出空框中的代码。

struct node { int val;

struct node *next; };

int traveLink(struct node *h) { struct node *p; int m;

for(m = h->val, p = h; p != NULL; ▁▁▁▁) if(▁▁▁▁) m = p->val; return m; }

2.4.希望通过函数调用,能改变某个int类型的变量值,则对应形参的类型是▁▁▁▁。

2.5.设 FILE *fp; 函数调用fp = fopen(―ABC.dat‖, ―r‖)的作用是▁▁▁▁。

2.6.设 int a[4][5], *p = a[3]; 该指针变量p指向的元素是▁▁▁▁。

2.7设int x = 4; 以下表达式的值是▁▁▁▁ 。 x += x *= x + 1

2.8.执行语句“for(j = k = 0; j – 10; k += j++);”后k的值是▁▁▁▁ 。

2.9.若d是已定义的双精度变量,再定义一个指向d的指针变量p的代码是▁▁▁▁。

2.10.以下分别是算术、关系和逻辑运算符: +, &&, <, ! 其优先级最低的是_________ 。

2.11.希望通过函数调用,能改变某个int类型的变量值,则在这样的函数体中,应该采用▁▁▁▁方式引用与该变量对应的形参,才能改变这个变量的值。

2.12.设有FILE *fp; 函数调用fclose(fp)的作用是_________。

2.13.设 int a[2][5], *p = a[1]; 该指针变量p指向的元素是▁▁▁▁。

2.14.设 float *pm, m = 2.718;根据下列图示,建立指针变量pm和变量m之间的关系的赋值语句是_________。

m pm 2.718

2.15.下面函数的功能是将链表h中的末表元移止首表元之前,并返回。试给出其中空框中的代码。

struct node {

int val; struct node *next;

4--34 注:解答写在答卷纸上,试卷中的解答不评分

};

struct node * lastToFirstLink(struct node *h) { struct node *p;

if(h == NULL || h->next->next == NULL) return h; for(p = h; _________; p = p->next);

p->next->next = h; _________; p->next = NULL; return h; }

2.16.写出描述“a和b中有且只有一个小于x”的C表达式▁▁▁▁。

2.17.执行语句“for(j = k = 0; j – 8; k += j++);”后k的值是▁▁▁▁ 。

2.18.写出描述“x和y中有且只有一个大于z”的C表达式▁▁▁▁。

2.19.设a=1 ,b=2 ,c=3 ,d=4 ,则表达式a < b ? a : c < d ? a : d的结果为______。

2.20.设a为整型变量,表达数学关系式:10 < a < 15的C表达式是______。

2.21.若有定义:char a ; int b ; float c ; double d ; 则表达式a * b + d / c的值的类型为______。

2.22.设x 、y 、z 、t 均为int型变量,则执行以下语句后,t的值为______ 。 x = y = z = 1 ; t = ++x || ++y && ++z;

2.23.假定所有变量均已正确定义,下列程序段运行后 x 的值是______。 a = b = c = 0 ; x = 35 ;

if(!a)x-- ; else if(b); if(c)x = 3; else x = 4;

2.24.设有宏定义:#define F(N) 2*N

执行代码:printf(\后输出的结果是______。

2.25.表述20 < x < 30 或 x < - 100的C表达式是______。

2.26.设有代码“static int a[3][4]={{6 , 5} , {4 , 3} , {2 , 1}} ;”则a[1][1] 的值为______。

2.27. C代码“float (*f)[5];”的含义是______。

2.28.C程序有且只有一个________。

三、读函数或程序,写出函数的功能或程序的输出结果

3.1.#include int sigmaDigit (int n)

{ int s = 0;

while(n) {

5--34 注:解答写在答卷纸上,试卷中的解答不评分


上海交大C++程序设计试题集(含答案).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:环境监测报告样板

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: