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

2019-03-28 20:51

printf(\ }

3.20

#include void s(int a[ ], int k) { int i, j, t;

for(i = 0; i < k-1; i++)

for(j = 0; j < k-i-1; j++) if (a[j] > a[j+1])

{ t = a[j]; a[j] = a[j+1]; a[j+1] = t;} }

void main()

{ int i, b[5] = {9, 6, 7, 5, 8};

s(b, 5);

for(i = 0; i < 5; i++) printf(〞=〞, b[i]); printf(〞\\n〞); }

3.21

#include int mDigit(int n) { int c = 9;

while(n > 0) { if((d = n % 10) < c) c = d; n /= 10; } return c;

} void main()

{ printf(\M\\n\, mDigit(9657)); }

3.22

#include void s(int b[ ], int k) { int i, j, t, m;

for(i = n-1; i > 0; i--) {

for(m = i, j = i-1; j >= 0; j--) if(b[j] > b[m]) m = j; if(m != i)

{ t = b[i]; b[i] = b[m]; b[m] = t;} } }

void main()

{ int i, a[5] = {6, 12, 7, 11, 5}; s(a, 5);

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

for(i = 0; i < 5; i++) printf(\ printf(\ }

3.23

#include void main()

{ int i, j, sum;

for(sum = 0, i = 1; i <= 4; i++) { for(j = 1; j <= i; j++) sum += i * j; printf(″=″, sum) } }

3.24

#include

int a, b;

void p(int c, int *d)

{ c = a + b; *d = a – b; printf(″=, =″, c, *d); }

void main()

{ a = 1; b = 2; p(a, &b); printf(″=, =\\n″, a, b); }

3.25.当输入为12 78 ↙时。 #include int i, j, k;

void main()

{ scanf(″%d%d″, &i, &j);

do { k = i % j; i = j; j = k; } while (j != 0); printf(″%d\\n″, i); }

3.26

int reverseNum(int n) {

return reverseDigit(n, 0); }

reverseDigit(int low, int high) {

if(low == 0) return high;

return reverseDigit(low/10, high*10+low);

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

}

四、完全程序或函数

4.1.将一字符串中的大写英文字母改成小写。 void upToLow(char *str) {

while ( ▁▁(1)▁▁ )

{ if( ▁▁(2)▁▁ ) *str -= ?A‘ – ?a‘; str++; } }

4.2.以下函数用来在w数组中插入x。形参n是w数组中的整数个数。数组w中的整数已按从小到大的顺序排列,插入后数组w中的整数仍有序。 void fun(int w[], int x, int n) { int i, p;

p = 0; w[n] = x;

while(x > w[p]) p++;

for(i = n; ▁▁(1)▁▁; i--) w[i] = ▁▁(2)▁▁ ; ▁▁(3)▁▁ = x; }

4.3.下面函数pi()的功能是根据以下公式求π值(直到最后一项小于10-6为止)。 π 1 1 2 1 2 3 1 2 3 4

—- = 1 + — + — * — + — * — * — + — * — * — * — +?? 2 3 3 5 3 5 7 3 5 7 9 double pi( )

{ double s = 0.0, t = 1.0; int n; for( n = 1; t >= 0.000001; n++) { s += t; t = t * ▁▁(1)▁▁; }

return 2.0 * s; }

4.4.使用结构型计算复数x和y的和。

struct comp { float re, im; };

struct comp addComp(struct comp x, struct comp y) { struct comp z;

z.re = ▁▁(1)▁▁ ; z.im = ▁▁(2)▁▁ ; return z; }

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

4.5.下面函数是求计算整数x的逆数。例如,x为1234,则函数的计算结果是4321。 int reverseNum(int x) { int s = 0;

while(x != 0) {

s = ▁▁(1)▁▁; x = ▁▁(2)▁▁; }

return s; }

4.6.将一字符串中的小写英文字母改成大写。 void lowToUp(char *str) { int i = 0;

while (▁▁(1)▁▁)

{ if(▁▁(2)▁▁) str[i] -= ?a‘ – ?A‘; i++; }

}

4.7.以下程序求出所有各位数字的立方和等于1099的3位数。 #include void main()

{ int a, b, c; /* 变量定义 */ for(a = 1; a <= 9; a++) for(b = 0; b <= 9; b++) for(c = 0; c <= 9; c++)

if ( _____(1)____ == 1099) printf(“%d\\n”, ____(2)____ ); }

4.7(2).以下程序求出所有各位数字的立方和等于1099的3位数。 #include

void main()

{ int k, a, b, c; /* 变量定义 */ for(k = 100; k <= 1000; k++) { a = ______ ; b = _______ ; c = ________ ;

if ( _____(1)____ == 1099) printf(“%d\\n”, k ); } }

4.8.以下函数输出整数的每位数字,并在数字之间输出一个逗号字符。例如,对于整数2345,函数输出为:2,3,4,5。 void writeDigits(int n)

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

{ int a[20], i;

i = 0; /* 对n进行分拆,各位数字自低位到高位存于数组a */ do { a[i++] = ____(1)____ ; ____(2)____; } while (n);

for(i--; i > 0; i--)

printf(\自高位到低位输出 */ printf(\ }

4.9.函数Node *merge(Node *h1, Node *h2)实现由链表h1和h2产生一个新链表,其中h1和h2分别是两个从小到大有序链表首表元指针,新链表包含或在链表h1,或在链表h2中出现的元素。要求新链表也从小到大链接,并且没有重复的表元。设链表表元类型ELE的定义为:

typedef struct ele { int val;

struct ele *next;

}Node;

Node *merge(Node *h1, Node *h2) {

Node *h = NULL, *tail = NULL, *p, *q; while(h1 || h2) {

if(h2 == NULL || ( ____(1)____ )) { p = h1; h1 = h1->next; }

else{

p = h2; h2 = h2->next; }

if(tail == NULL || ____(2)____) {//只复制与末表元不相等的表元 q = (Node *)malloc(sizeof(Node)); q->val = p->val; if( ____(3)____ ) h = tail = q; else tail = ____(4)____; }

}

if(tail) ____(5)____; return h; }

4.10.函数f(NODE1 *h)参照无序整数链表,生成一个从小到大顺序链接的有序整数链表,新链表中没有重复的整数,新链表的表元有整数和该整数在原链表中出现的次数等信息。 typedef struct node1 { /* 原无序整数链表的表元类型 */ int val; struct node1 *next;

}NODE1;

typedef struct node2 { /* 从小到大顺序链接的整数链表的表元类型 */ int val; int count; struct node2 *next;

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


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

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

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

马上注册会员

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