有关C++程序设计基础的各种考题解答参考汇总
2021-09-29 18:27
881 查看
早先年考研的主考科目正是【算法与数据结构】,复习得还算可以。也在当时[百度知道]上回答了许多相关问题,现把他们一起汇总整理一下,供读者参考。
【1】
原题目地址:https://zhidao.baidu.com/question/1574956570322831900.html?entry=qb_uhome_tag
题目: C语言的题目,求大神来看看 小学生算术学习系统。不断的从键盘输入两个整数级一个运算符(+-*/)之一,并输入计算结果。若计算结果正确,则显示“很好,做对了。”负责献世“做错了,再做一次“。系统规定,只能输入三次答案。当第三次输入答案任然错误时,系统将显示正确答案。本系统要求有”是否继续”的提示,用户输入“y”,表示继续,输入“n”表示结束
答:
#include <stdio.h> #include <time.h> #include <windows.h> #include <stdlib.h> int main() { int a,b,Suan; int sum; //用户输入答案 int C; //正确答案 int D; //正确余数 int yu = 0; //输入的余数 int t = 0; //开关变量(求余数) int i = 3; int temp = NULL; char Insert = NULL; srand(time(NULL)); Q: a = rand()%100; b = rand()%100; Suan = rand()%100; t = 0; if(Suan <=25) { C = a+b; printf("%d+%d=? :\n",a,b); temp = 1; D = 0; yu = 0; } else if(Suan > 26 && Suan <= 50) { C = a-b; printf("%d-%d=? :\n",a,b); temp = 2; D = 0; yu = 0; } else if(Suan > 50 && Suan <= 75) { C = a*b; printf("%d*%d=? :\n",a,b); temp = 3; D = 0; yu = 0; } else if(Suan > 75 && Suan <= 100) { C = a/b; D = a%b; t = 1; printf("%d/%d=? (商):\n",a,b); temp = 4; } A: if(5 == temp) { printf("%d+%d=? :\n",a,b); } if(6 == temp) { printf("%d-%d=? :\n",a,b); } if(7 == temp) { printf("%d*%d=? :\n",a,b); } if(8 == temp) { printf("%d/%d=? (商):\n",a,b); } if(temp <= 4) { temp++; temp++; temp++; temp++; } scanf("%d",&sum); if(t == 1) { printf("余数多少:"); scanf("%d",&yu); } printf("\n---------------------\n"); if(C == sum && D == yu) printf("很好,做对了。\n"); else { if(1 != i) { printf("做错了,再做一次!(你还有%d次机会)\n",i-1); i--; goto A; } else { if(t == 0) printf("做错了!正确答案是 %d!\n",C); else { printf("做错了!正确答案(商)是 %d!\n",C); printf("(余数)是 %d!\n",D); } //i = 3; } } i = 3; printf("-----------------------------------------------\n"); printf("是否继续<y/n>:\n"); P: scanf("%c",&Insert); if('y' == Insert) goto Q; if('n' == Insert) exit(-1); else { Insert = NULL; goto P; } system("pause"); return 0; }
【2】
原题目地址:https://zhidao.baidu.com/question/1495135027232307579.html?entry=qb_uhome_tag
题目: 求解c语言指针问题
#include<stdio.h> #include<conio.h> #define N 2 #define M 4 double *calculate1(double (*p)[M], double *p1) { int i, j; double s=0; for (j=0; j<M; j++) { for (i=0; i<N; i++) { s+=*(*p+j); p++; } for (i=0; i<N; i++) p--; *(p1+j)=s; s=0; } p1=p1-M; return p1; } void main() { int m; double score [M]={0, 1, 2, 3, 4, 5, 6, 7}, sbj[M], (*p)[M]=score, *p1=sbj; p1=calculate1(p, p1); for (m=0; m<M; m++) printf("\n第%d科总分为%.1lf\n", m+1, *(p1+m)); }
score
[M]表示N个学生的M门科目的成绩,算出各科的总分
为什么结果是这样
答:
#include<stdio.h> #include<conio.h> #include <windows.h> #define N 2 #define M 4 void calculate(double (*p)[M],double *p1) { int i,j; double s=0; /*for(i=0;i<N;i++) { for(j=0;j<M;j++) { printf("%f\t",*(*(p+i)+j)); } putchar(10); }*/ for(i=0;i<M;i++) { for(j=0;j<N;j++) { //printf("%f\t",*(*(p+j)+i)); s+=*(*(p+j)+i); } *(p1+i)=s; s=0; } return; } int main() { int m; double score [M]={0,1,2,3,4,5,6,7},sbj[M], (*p)[M]=score,*p1=sbj; calculate(p,p1); for(m=0;m<M;m++) printf("\n第%d科总分为%.1lf\n",m+1,*(p1+m)); system("pause"); return 0; }
我读不懂你的程序,很多都不需要的。你可以参照我写的!有问题可以追问!
【3】
原题目地址:https://zhidao.baidu.com/question/1895405030720891420.html?entry=qb_uhome_tag
题目: 求C语言大神助攻解决这几道问题
答:
/*******/ /***1***/ /*******/ #include<stdio.h> #include <windows.h> int Judge(char a[],char b[]) { int i,j; for(i=0,j=0; a[i]!='\0' ; i++,j++) { if(a[i] == b[j]) continue; if(a[i] > b[j]) return 1; if(a[i] < b[j]) return -1; } return 0; } int main() { int m = NULL; char str1[5] = "abc"; char str2[5] = "abb"; puts(str1); putchar(10); puts(str2); m = Judge(str1,str2); if(m == 1) printf("[>]\n"); else if(m == -1) printf("[<]\n"); else printf("[=]\n"); system("pause"); return 0; } //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /*******/ /***2***/ /*******/ #include<stdio.h> #include <windows.h> int main() { float sum = 1.0; int ss; int s=1,s1=1; printf("sum=1/1"); while(1.0/s >= 1e-6) { sum += 1.0/s; printf(" +1/%d",s); ss = s1; s1 = s; s += ss; } sum += 1.0/s; printf(" +1/%d",s); printf(" = %f\n",sum); system("pause"); return 0; } //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /*******/ /***3***/ /*******/ #include<stdio.h> #include <windows.h> void Func(int a[][4]) { int i,j,t = 0; for(i=0; i<4; i++) { for(j=0; j<4; j++) { if(a[j][i] > 0) t++; } if(t>=1) { printf("%d\n",i); t = 0; } } return; } int main() { int a[4][4]; int i,j; for(i=0; i<4; i++) for(j=0; j<4; j++) scanf("%d",&a[i][j]); for(i=0; i<4; i++) { for(j=0; j<4; j++) printf("%d\t",a[i][j]); putchar(10); } putchar(10); Func(a); system("pause"); return 0; } /*******/ /***4***/ /*******/ #include <stdio.h> #include <windows.h> void Connect(char a[],char b[],char c[]) { int i,j; for(i=0; a[i]!='\0'; i++) c[i] = a[i]; for(j=0; b[j]!='\0'; j++) c[i++] = b[j]; c[i]='\0'; return; } int main() { int m = NULL; char str1[5] = "abc"; char str2[10] = "bcde"; char str3[20]; printf("str1="); puts(str1); putchar(10); printf("str2="); puts(str2); putchar(10); Connect(str1,str2,str3); printf("str3="); puts(str3); system("pause"); return 0; } //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /*******/ /***5***/ /*******/ #include<stdio.h> #include <windows.h> int main() { int i; float sum=0; double f1=1.0,f2=1.0,t; printf("sum="); while(sum<=100.0) { sum += f1/f2; printf(" +%f/%f",f1,f2); t=f2; f2=f2+f1; f1=t; } printf("= %.2f\n",sum); system("pause"); return 0; } //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// /*******/ /***6***/ /*******/ #include<stdio.h> #include <windows.h> void Func(int a[][4]) { int i,j,t = 0; for(i=0; i<4; i++) { for(j=0; j<4; j++) { if(a[i][j] > 0) t++; } if(t>=1) { printf("%d\n",i); t = 0; } } return; } int main() { int a[4][4]; int i,j; for(i=0; i<4; i++) for(j=0; j<4; j++) scanf("%d",&a[i][j]); for(i=0; i<4; i++) { for(j=0; j<4; j++) printf("%d\t",a[i][j]); putchar(10); } putchar(10); Func(a); system("pause"); return 0; }
请你叫我雷锋,帮你做了这么多题!有问题欢迎追问! (哈哈,当时心情肯定不错,帮忙做了那么多题目,啊哈哈~)
相关文章推荐
- 北京大学数学专业考研试题参考解答汇总
- 与监控有关的开源项目汇总
- Java面试通关要点汇总集之核心篇参考答案
- 各种整形,总结留作参考。
- 分享两遍不错的文章,有关快速排序,用JS写的,有需要的朋友可以参考一下
- [家里蹲大学数学杂志]第435期第七届中国大学生数学竞赛预赛试题(数学类,2015年10月)参考解答
- .NET 各种问题汇总
- 有关衬衫领:你所不知的各种“秘密”_第1页_福布斯中文网
- 问题解决方案1-------------catkin_make编译时候的各种问题汇总
- apktool反编译时各种问题汇总
- 各种排序算法汇总详解
- 一道与GAL有关的生物题详细解答
- 有关 .NET Framework 3.0 版本控制和部署的问题与解答
- EBS系统管理常用SQL语句整理汇总(参考网上资料&其他人博客)
- 二分查找各种情况汇总
- [偏微分方程教程习题参考解答]4.3高维波动方程
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.5
- mac各种快捷键汇总
- 2016年上半年网络工程师考试下午真题,参考答案,详细解答发布
- linux驱动面试题目汇总及解答