logo资料库

C++程序设计题库(182道含答案).doc

第1页 / 共297页
第2页 / 共297页
第3页 / 共297页
第4页 / 共297页
第5页 / 共297页
第6页 / 共297页
第7页 / 共297页
第8页 / 共297页
资料共297页,剩余部分请下载后查看
试卷编号: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 #include using namespace std; void grading(int,int,int); 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("out.txt",ios::out); myfile<data > 0) positive++; else if (p->data < 0) negtive++; else if (p->data == 0) zero++; p=p->nextPtr; 第 2 题 (10.0 分) 题号:522 /*------------------------------------------------------------------------------ 【程序设计】 -------------------------------------------------------------------------------- 题目:设计函数 char capitalize(char);将小写英文字符变为对应的大写字符。 ------------------------------------------------------------------------------- 注意: 1.部分源程序给出如下。请勿改动主函数 main 和其它函数中的任何内容,仅在*program* 和*end*所标记的区域内完成题干要求的函数功能。 2.//标记开始与//标记结束内的程序可以忽略阅读。 ------------------------------------------------------------------------------*/ #include #include using namespace std; void wwjt(); /********Program********/ char capitalize(char ch) { if(ch>='a'&&ch<='z') return ch-'a'+'A'; else return ch;
} /******** End ********/ int main() { int i=0; char cp[30]; cout<<"请输入包含小写字母的句子:"<='a'&&ch<='z') return ch-'a'+'A'; else return ch;
第 3 题 (10.0 分) 题号:672 /*------------------------------------------------ 【程序设计】 -------------------------------------------------- 题目:函数 mySum(int a[ ][ ], int m, int n)返回二维 整数数组 a 中所有元素的和,m、n 分别为数组 a 的行 数、列数。填写适当的代码,使得 mySum()完成正确 的功能。 -------------------------------------------------- 注意:部分源程序给出如下。请勿改动主函数 main 和其它 函数中的任何内容,仅在函数的花括号中填入所编 写的若干语句。 ------------------------------------------------*/ #include #include using namespace std; int mySum(int a[2][3], int m, int n); void gfkd(); 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("in.dat",ios::in); myF.read((char *)a, sizeof(int)*2*3); myF.close(); myF.open("out.dat",ios::out); myF << mySum(a, 2, 3); myF.close(); } 答案:int i, j, s=0; for (i=0; i #include using namespace std; void writeinfile(int n); 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) { } k/=10; i*=10; if(j%i==m) n++; /********** End **********/ } writeinfile(n); } void writeinfile(int n) { } fstream myfile; myfile.open("f.txt",ios::out); myfile<
题目:补充函数 aver 的代码,该函数计算 n 个学生成绩(通 过参数 cj 传入)的平均分数。 -------------------------------------------------- 注意:部分源程序给出如下。仅在标有"Program"和"End" 的注释行之间补充代码,请勿改动其它内容。 ------------------------------------------------*/ #include #include using namespace std; void grading(); float aver(int cj[],int n) { /**********Program**********/ /********** End **********/ } int main() { } grading(); return 0; void grading() { fstream infile,myfile; int b[50]; int i; infile.open("in.txt",ios::in); myfile.open("out.txt",ios::out); for(i=0;i<50;i++) infile>>b[i]; myfile<<(int)aver(b,50)<
分享到:
收藏