试卷编号:8172 所属语言:C++
试卷方案:题库182道设计题 试卷总分:1820分 共有题型:1种
一、程序设计 共182题 (共计1820分) 第1题 (10.0分) 题号:664
/*------------------------------------------------------- 【程序设计】
---------------------------------------------------------
题目:已知有结构体类型定义: struct node
{ int data;
struct node *nextPtr; };
请编写函数void computingList(node * head),对head 指向的单向链表,分别统计结点的data成员值为负数、0、 正数的结点个数分别存入变量negtive、zero、positive中。
-------------------------------------------------------
注意:部分源程序给出如下。请勿改动主函数main和其它函数中 的任何内容,仅在函数的花括号中填入所编写的若干语句。
-------------------------------------------------------*/
#include
struct node {
int data;
struct node *nextPtr; };
void computingList(node * head) {
int positive=0,negtive=0,zero=0;
/**********Program**********/
/********** End **********/ //忽略阅读
grading(positive,zero,negtive); //忽略阅读结束 }
struct node *createList(void) {
node *head=NULL, *p1, *p2; int i;
int a[10] = {-1,3,4,0,9,4,11,-6,2,-10}; head=p2=p1= new node; p1->data = a[0]; for (i=1; i<10; i++) {
p1= new node; p1->data = a[i]; p2->nextPtr=p1; p2=p1; }
p2->nextPtr=NULL; return (head); }
int main() {
struct node *head; head = createList(); computingList(head); return 0; }
//以下忽略阅读
void grading(int a,int b,int c) {
fstream myfile;
myfile.open(\ myfile<
答案: struct node *p;
第3题 (10.0分) 题号:672
/*------------------------------------------------ 【程序设计】
--------------------------------------------------
题目:函数mySum(int a[ ][ ], int m, int n)返回二维 整数数组a中所有元素的和,m、n分别为数组a的行 数、列数。填写适当的代码,使得mySum()完成正确 的功能。
-------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。
------------------------------------------------*/
#include
int mySum(int a[2][3], int m, int n); void gfkd();
p=head; while(p!=NULL) { }
if(p->data > 0)
positive++; negtive++; zero++;
else if (p->data < 0) else if (p->data == 0) p=p->nextPtr;
void main()
{ int a[2][3]={{1,2,3}, {4,5,6}};
cout << mySum(a, 2, 3) << endl;
// -------- main()函数此后部分可以不阅读 ----------- gfkd(); }
int mySum(int a[2][3], int m, int n) {
/*************** Program *****************/
/*************** End *****************/ }
void gfkd()
{ fstream myF; int a[2][3];
myF.open(\ myF.read((char *)a, sizeof(int)*2*3); myF.close();
myF.open(\ myF << mySum(a, 2, 3); myF.close(); }
答案:int i, j, s=0;
第4题 (10.0分) 题号:588
/*------------------------------------------------
return s;
for (i=0; i for (j=0; j s = s + a[i][j]; 【程序设计】 -------------------------------------------------- 题目: 求1-1000之间同构数的个数n。同构数是: \某数与其自身的平方数的后几位相同\。 例如:25×25=625,25是同构数。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数main和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include void main() { int m,k,j,n=0; for(m=1;m<=1000;m++) { /**********Program**********/ int i=1; k=m; j=m*m; while(k!=0) { } if(j%i==m) n++; k/=10; i*=10; /********** End **********/ } writeinfile(n); } void writeinfile(int n) { fstream myfile; myfile.open(\ myfile<