c语言习题及答案-爱课程mooc
- 格式:docx
- 大小:126.76 KB
- 文档页数:51
1求最大公约数和最小公倍数(15分)#include <>int fun1( int m, int n)#include <>int fun1( int m, int n)#include<>int main(){ int n;int sum(int n);scanf("%d",&n);printf("%d\n",sum(n));}int sum(int n){ int b;if(n>1)b=sum(n-1)+2*n-1;if(n==1)b=1;return b;}5.巧算自然数#include<>int step = 1;void fc(int n) 鸭子#include <> int main(){static int i,x[8];x[7]=2;for(i=7;i>=0;i--)x[i-1]=(x[i]+1)*2;printf("sum=%d\n",x[0]);for(i=0;i<7;i++)printf("sell=%d,",x[i]-x[i+1]); printf("\n");return 0;}7.各位数字之和int add(int s){if (s<10) 大公约数数球和return s;else return s%10+add(s/10); }int main(int argc, char *argv[]) {int a,b;scanf("%d",&a);b=add(a);printf("%d",b);return 0;}对称字符串#include <>#include <>main(){ char a[100];int i,j;gets(a);i=0;j=strlen(a)-1;while(i<j){if(a[i]==a[j]){i++;j--;}elsebreak;}if(i>=j) printf("YES\n");else printf("NO\n");}指针排序#include <>void sort(int *p,int n);void sort(int *p,int n){int i,j;int temp=0;for(i=0;i<n;i++){for(j=0;j<n;j++)if(p[j]>p[j+1]){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}int main(){int i;int a[10];for(i=0;i<10;i++){scanf("%d",&a[i]);}int *p=a;sort(a,10);for(i=0;i<10-1;i++){printf("%d,",*(p++));}printf("%d\n",*p);return 0;}查找数#include <>void find(int *p,int element,int n); void find(int *p,int element,int n) {int i,flag=0;;for(i=0;i<n;i++){flag++;if(element == p[i]){printf("%d\n",p[i]);break;} }}if(flag == n){printf("No\n");}}int main(){int i;int a[10];for(i=0;i<10;i++){scanf("%d",&a[i]);}int *p=a;int num;scanf("%d",&num);find(p,num,10);return 0;}输出指定成绩#include <>int main(){int grade[3][4],i,j,(*p)[4]=grade,n;float ave=0;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&grade[i][j]);scanf("%d",&n);for(i=0;i<3;i++)printf("%d ",*(*(p+n-1)+i));printf("%d\n",*(*(p+n-1)+3));for(i=0;i<4;i++)ave+=*(*(p+n-1)+i);ave/=4;if(ave-(int)ave)printf("%.2f\n",ave);elseprintf("%d\n",(int)ave);return 0;成绩排序#include <>void average(int p[][6],int n);void average(int p[][6],int n){int i;for(i=0;i<4;i++){p[n][4]+=p[n][i];}p[n][5]=p[n][4]/4;}void Print(int p[][6],int n){int max1=p[0][5];int max2=p[1][5];int max3=p[2][5];int i;if(max1>max2 && max1>max3){if(max2>max3){printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);}else{printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);}}else if(max2>max1 && max2>max3){if(max1>max3){printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); }printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);}else{printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);}}else if(max3>max1 && max3>max2){if(max1>max2){printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);}else{printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]);printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]);printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);}}}int main(){int i,j;int a[3][6]={0};for(i=0;i<3;i++){for(j=0;j<4;j++){scanf("%d",&a[i][j]);}average(a,i);}Print(a,3);return 0;统计字符串出现次数#include <>#include <>int main(){char str1[100],str2[100];int flag=0,counter=0,l1,l2,i,j;gets(str1);gets(str2);l1=strlen(str1);l2=strlen(str2);for(i=0;i<l1;i++){if(str1[i]==str2[0]){for(j=1;j<l2;j++){if(str1[i+j]!=str2[j])break;else flag=1;}if(flag)counter++;}}if(counter)printf("%d\n",counter);elseprintf("No\n");return 0;}成绩统计求平均分#include<>main(){printf("wanglei,\n");printf("lihong,\n");printf("zhangli,\n");printf("liuming,83\n");printf("AVERAGE:,,,82\n");}加密#include<>#include<>int l;void gm(char*a);main(){char s[100]={0};gets(s);l=strlen(s);gm(s);}void gm(char*a){int i;char d[100]={0};for(i=0;i<l;i++){switch(a[i]){case'a':d[i]='d';break; case'b':d[i]='w';break;case'c':d[i]='k';break; case'd':d[i]=';';break;case'e':d[i]='i';break; case'i':d[i]='a';break;case'k':d[i]='b';break;case';':d[i]='c';break;case'w':d[i]='e';break; default:d[i]=a[i];}}puts(d);}学生成绩#include""struct ade{int no;int am;int bm;int cm;};struct ade N[3]={1,70,80,90,2,75,85,95,3,88,84,65};main(){char s[300];int i=0,k,m;for(i=0;i<3;i++){scanf("%c",&s[i]);if(s[i]=='\n') break;}if(s[0]=='m')printf("2");elseif(s[0]=='1'||s[0]==211s[0]=='3'){k=N[(int)(s[0]-'1')].am+N[(int)(s[0]-'1')].bm+N[(int)(s[0]-'1')].cm;;m=k/3;printf("%d",m);}else printf("0");}字母储存#include<>#include<>typedef struct Char_{ char ch;char intch;struct Char_ *next;}CHAR_;int main(void){]CHAR *node = NULL;CHAR *ch = NULL;CHAR_ *hear = NULL;char zimu = 'a';char panduanzimu;char record;for (; zimu != 'e'; zimu++){ch = (CHAR *)malloc(sizeof(CHAR));if (ch == NULL) { exit(0); } ch_->ch = zimu;ch->next = NULL;if (node == NULL) { node = ch_; }else{node->next = ch;node = node->next; }if (hear == NULL){ hear = node; }}for (zimu -= 2; zimu != ('a' - 1); zimu--){ch_ = (CHAR_ *)malloc(sizeof(CHAR_));if (ch == NULL){ exit(0); }ch_->ch = zimu;ch->next = NULL;node->next = ch_; node = node->next;}for (node = hear, zimu = '0'; node != NULL; node = node->next, zimu++) {node->intch = zimu;}scanf("%c", &panduanzimu);node = hear;if (panduanzimu >= '0'&&panduanzimu <= '6'){]while (node != NULL){if (panduanzimu == node->intch){ printf("%c", node->ch); break; } |node = node->next;}}else if (panduanzimu >= 'a'&&panduanzimu <= 'd'){while (node != NULL){if (panduanzimu == node->ch) record = node->intch;}node = node->next;}printf("%c", record);else{ printf("N");}node = hear;while (node != NULL) {hear = node->next;free(node);node = hear;}return 0;}链表合并#include<>#include<>int main(){static int i,j,m,n;static char q,x[100],y[100],z[100];gets(x);gets(y);strcat(x,y);m=strlen(x);for(j=0;j<m;j++){for(i=0;i<m-j;i++){q=x[j];if(x[j]>x[j+i]){ x[j]=x[j+i]; x[j+i]=q;}}}for(i=0;i<m;i++){for(j=0;j<=i;j++){if(z[j]==x[i])break;if(j==i)z[n]=x[i];n=strlen(z);}}for(i=m-1;i>0;i--){ if(isalpha(z[i])){ m=i;break;}}for(i=0;i<=m;i++){if(z[i]==' '){continue;}else{if(i==m){printf("%c\n",z[i]);}else{printf("%c ",z[i]);return 0;解析字符串#include <>#include <> int main(){int i,j,k=0;char a[100],b[100],c[100];gets(a);for(i=0;a[i]!='n';i++){printf("%c",a[i]); k++;}printf("\n");for(i=k+1;a[i]!='\0'&&a[i]!='n';i++){printf("%c",a[i]); k++;}if(a[i]=='n'&&a[i+1]!='\0'){for(i=k+2;a[i]!=''0';++i){ printf("%c",a[i]);}}}#include<>#include <> int main () { char str[80], c; int i, j, n;gets(str); n = strlen(str);for ( i=0, j=n-1; i<j; i++, j--){ c= str[i];str[i] = str[j];str[j] = c;return 0;}基本的四则运算#include <>int main(){long long a,b;char op;scanf("%lld%c%lld",&a,&op,&b);switch(op){case '+':printf("%lld\n",a+b);break;case '-':printf("%lld\n",a-b);break;case '*':printf("%lld\n",a*b); break;case '/':printf("%lld\n",a/b);break;case '%':printf("%lld\n",a%b); break;}return 0;}复杂的四则运算#include <>#include <>int main(){static char x[100];int i;scanf("%s",&x);for(i=0;i<strlen(x);i++){if(x[i]>='0'&&x[i]<='9'){ continue;}if(x[i]=='*'){x[i-1]=(x[i-1]-'0')*(x[i+1]-'0')+'0';x[i+1]='0';i++;}else if(x[i]=='/'){x[i-1]=(x[i-1]-'0')/(x[i+1]-'0')+'0';x[i+1]='0';i++;}}for(i=1;i<strlen(x);i++){if(x[i]>='0'&&x[i]<='9'){if(x[i-1]=='+'){x[0]+=(x[i]-'0');}else if(x[i-1]=='-'){ x[0]-=(x[i]-'0');}}else{continue;}}printf("%c\n",x[0]);return 0;。
第一章题目内容:使用printf()在屏幕上输出hello world!提示:#include <>int main(){printf("hello world!\n");return 0;}输入格式:无输出格式:输出提示信息:"hello world!\n"输入样例:输出样例:hello world!#include <>int main(){printf("hello world!\n");return 0;}在屏幕上输出多行信息(3分)题目内容:使用printf()函数在屏幕上输出以下多行信息:hello world!hello hit!hello everyone!提示:在printf()函数中转义字符‘\n’表示换行。
输入格式:输出格式:输出提示信息:"hello world!\n""hello hit!\n""hello everyone!\n"输入样例:输出样例:hello world!hello hit!hello everyone!#include <>int main(){printf("hello world!\n");printf("hello hit!\n");printf("hello everyone!\n");return 0;}计算半圆弧的周长及半圆面积(3分)题目内容:编程并输出半径r=的半圆弧的周长及该半圆的面积,的取值为。
要求半径r和必须利用宏常量表示。
输入格式:无输出格式:半圆的面积输出格式:"Area=%f\n"半圆弧的周长输出格式:"circumference=%f\n"输入样例:输出样例:Area=circumference=#include<>#define PI#define Rint main(){printf("Area=%f\n", R*R*PI/2);printf("circumference=%f\n", 2*R*PI/2);return 0;}计算长方体体积(3分)题目内容:编程并输出长、宽、高的长方体的体积。
C语言程序设计中国大学mooc课后章节答案期末考试题库2023年1.关于问题与问题求解,下列说法正确的是()。
答案:人类进行问题求解的一般思维过程可分为问题分析、提出假设和检验假设。
2.关于贪心算法(又称贪婪算法是指,在对问题求解时,总是做出在当前看来是最好的选择。
也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。
贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解),下列叙述中正确的是()。
答案:选择能产生问题最优解的最优量度标准是使用贪婪算法的核心。
3.将多个有序序列合并成一个有序序列,属于()。
答案:归并排序4.关于数学模型(Mathematical Model)和数学建模(MathematicalModeling),下列说法正确的是()。
答案:数学模型是对实际问题的数学抽象,是用数学符号、数学式子等对实际问题本质属性的抽象而又简洁的刻画。
5.在“八皇后问题”的问题求解中,采用“试探-失败返回-再试探”的问题求解方法,该方法属于()。
八皇后问题:在8×8格的国际象棋上摆放8个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
答案:回溯法6.关于算法(Algorithm),下列叙述正确的是()。
答案:算法可以用自然语言、流程图或伪代码描述,各有其优点。
7.关于抽象(Abstraction),下列说法正确的是()。
答案:抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。
8.关于哥尼斯堡七桥问题,下列叙述不正确的是()。
哥尼斯堡七桥问题:哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥。
如图所示:我们要解决的问题是可否存在一种方案可以走过所有的桥然后回到起点。
答案:欧拉将七桥问题归结为了一个图形形式的“一笔画”问题,从而得到了问题的解。
C语言程序设计慕课下编译答案(完美)-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN1 求最大公约数和最小公倍数(15分)#include <>int fun1( int m, int n) 大公约数#include <>int fun1( int m, int n) 数球和#include<>int main(){ int n;int sum(int n);scanf("%d",&n);printf("%d\n",sum(n));}int sum(int n){ int b;if(n>1)b=sum(n-1)+2*n-1;if(n==1)b=1;return b;}5.巧算自然数#include<>int step = 1;void fc(int n)鸭子#include <>int main(){static int i,x[8];x[7]=2;for(i=7;i>=0;i--)x[i-1]=(x[i]+1)*2;printf("sum=%d\n",x[0]);for(i=0;i<7;i++)printf("sell=%d,",x[i]-x[i+1]);printf("\n");return 0;}7.各位数字之和int add(int s){if (s<10)return s;else return s%10+add(s/10); }int main(int argc, char *argv[]) {int a,b;scanf("%d",&a);b=add(a);printf("%d",b);return 0;}对称字符串#include <>#include <>main(){ char a[100];int i,j;gets(a);i=0;j=strlen(a)-1;while(i<j){if(a[i]==a[j]){i++;j--;}elsebreak;}if(i>=j) printf("YES\n");else printf("NO\n");}指针排序#include <>void sort(int *p,int n);void sort(int *p,int n){int i,j;int temp=0;for(i=0;i<n;i++){for(j=0;j<n;j++){if(p[j]>p[j+1]){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}int main(){int i;int a[10];for(i=0;i<10;i++){scanf("%d",&a[i]);}int *p=a;sort(a,10);for(i=0;i<10-1;i++){printf("%d,",*(p++));}printf("%d\n",*p);return 0;}查找数#include <>void find(int *p,int element,int n); void find(int *p,int element,int n) {int i,flag=0;;for(i=0;i<n;i++){flag++;if(element == p[i]){printf("%d\n",p[i]); break;}if(flag == n){printf("No\n");}}int main(){int i;int a[10];for(i=0;i<10;i++){scanf("%d",&a[i]);}int *p=a;int num;scanf("%d",&num);find(p,num,10);return 0;}输出指定成绩#include <>int main(){int grade[3][4],i,j,(*p)[4]=grade,n;float ave=0;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&grade[i][j]);scanf("%d",&n);for(i=0;i<3;i++)printf("%d ",*(*(p+n-1)+i));printf("%d\n",*(*(p+n-1)+3));for(i=0;i<4;i++)ave+=*(*(p+n-1)+i);ave/=4;if(ave-(int)ave)printf("%.2f\n",ave);elseprintf("%d\n",(int)ave);return 0;}#include <>void average(int p[][6],int n);void average(int p[][6],int n){int i;for(i=0;i<4;i++){p[n][4]+=p[n][i];}p[n][5]=p[n][4]/4;}void Print(int p[][6],int n){int max1=p[0][5];int max2=p[1][5];int max3=p[2][5];int i;if(max1>max2 && max1>max3){if(max2>max3){printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); }else{printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); }}else if(max2>max1 && max2>max3){if(max1>max3){printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]);printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); }else{printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); }}else if(max3>max1 && max3>max2){if(max1>max2){printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); }else{printf("%d,%d,%d,%d\n",p[2][0],p[2][1],p[2][2],p[2][3]); printf("%d,%d,%d,%d\n",p[1][0],p[1][1],p[1][2],p[1][3]); printf("%d,%d,%d,%d\n",p[0][0],p[0][1],p[0][2],p[0][3]); }}}int main(){int i,j;int a[3][6]={0};for(i=0;i<3;i++){for(j=0;j<4;j++){scanf("%d",&a[i][j]);}average(a,i);}Print(a,3);return 0;}统计字符串出现次数#include <>#include <>int main(){char str1[100],str2[100];int flag=0,counter=0,l1,l2,i,j;gets(str1);gets(str2);l1=strlen(str1);l2=strlen(str2);for(i=0;i<l1;i++){if(str1[i]==str2[0]){for(j=1;j<l2;j++){if(str1[i+j]!=str2[j])break;else flag=1;}if(flag)counter++;}}if(counter)printf("%d\n",counter);elseprintf("No\n");return 0;}成绩统计求平均分#include<>main(){printf("wanglei,\n");printf("lihong,\n");printf("zhangli,\n");printf("liuming,83\n");printf("AVERAGE:,,,82\n");}加密#include<>#include<>int l;void gm(char*a);main(){char s[100]={0};gets(s);l=strlen(s);gm(s);}void gm(char*a){int i;char d[100]={0};for(i=0;i<l;i++){switch(a[i]){case'a':d[i]='d';break;case'b':d[i]='w';break;case'c':d[i]='k';break;case'd':d[i]=';';break;case'e':d[i]='i';break;case'i':d[i]='a';break;case'k':d[i]='b';break;case';':d[i]='c';break;case'w':d[i]='e';break;default:d[i]=a[i];}}puts(d);}学生成绩#include""struct ade{int no;int am;int bm;int cm;};struct ade N[3]={1,70,80,90,2,75,85,95,3,88,84,65};main(){char s[300];int i=0,k,m;for(i=0;i<3;i++){scanf("%c",&s[i]);if(s[i]=='\n') break;}if(s[0]=='m')printf("2");else if(s[0]=='1'||s[0]=='2'||s[0]=='3'){k=N[(int)(s[0]-'1')].am+N[(int)(s[0]-'1')].bm+N[(int)(s[0]-'1')].cm;;m=k/3;printf("%d",m);}else printf("0");}字母储存#include<>#include<>typedef struct Char_{ char ch;char intch;struct Char_ *next;}CHAR_;int main(void){CHAR_ *node = NULL;CHAR_ *ch_ = NULL;CHAR_ *hear = NULL;char zimu = 'a';char panduanzimu;char record;for (; zimu != 'e'; zimu++){ch_ = (CHAR_ *)malloc(sizeof(CHAR_));if (ch_ == NULL) { exit(0); }ch_->ch = zimu;ch_->next = NULL;if (node == NULL) { node = ch_; }else{node->next = ch_;node = node->next; }if (hear == NULL){ hear = node; }}for (zimu -= 2; zimu != ('a' - 1); zimu--){ch_ = (CHAR_ *)malloc(sizeof(CHAR_));if (ch_ == NULL){ exit(0); }ch_->ch = zimu;ch_->next = NULL;node->next = ch_;node = node->next;}for (node = hear, zimu = '0'; node != NULL; node = node->next, zimu++) {node->intch = zimu;}scanf("%c", &panduanzimu);node = hear;if (panduanzimu >= '0'&&panduanzimu <= '6'){while (node != NULL){if (panduanzimu == node->intch){ printf("%c", node->ch); break; }node = node->next;}}else if (panduanzimu >= 'a'&&panduanzimu <= 'd'){while (node != NULL){if (panduanzimu == node->ch){record = node->intch;}node = node->next;}printf("%c", record);}else{ printf("N");}node = hear;while (node != NULL){hear = node->next;free(node);node = hear;}return 0;}链表合并#include<>#include<>int main(){static int i,j,m,n;static char q,x[100],y[100],z[100];gets(x);gets(y);strcat(x,y);m=strlen(x);for(j=0;j<m;j++){for(i=0;i<m-j;i++){q=x[j];if(x[j]>x[j+i]){x[j]=x[j+i];x[j+i]=q;}}}for(i=0;i<m;i++){for(j=0;j<=i;j++){if(z[j]==x[i])break;if(j==i)z[n]=x[i];n=strlen(z);}}for(i=m-1;i>0;i--){if(isalpha(z[i])){m=i;break;}}for(i=0;i<=m;i++){if(z[i]==' '){continue;}else{if(i==m){printf("%c\n",z[i]);}else{printf("%c ",z[i]);}}}return 0;}解析字符串#include <>#include <>int main(){int i,j,k=0;char a[100],b[100],c[100];gets(a);for(i=0;a[i]!='n';i++){printf("%c",a[i]);k++;}printf("\n");for(i=k+1;a[i]!='\0'&&a[i]!='n';i++) {printf("%c",a[i]);k++;}if(a[i]=='n'&&a[i+1]!='\0'){for(i=k+2;a[i]!='\0';++i){printf("%c",a[i]);}}}字符串反向#include<>#include <>int main ( ){ char str[80], c;int i, j, n;gets(str);n = strlen(str);for ( i=0, j=n-1; i<j; i++, j-- ){ c= str[i];str[i] = str[j];str[j] = c;}puts(str);return 0;}基本的四则运算#include <>int main(){long long a,b;char op;scanf("%lld%c%lld",&a,&op,&b);switch(op){case '+':printf("%lld\n",a+b);break;case '-':printf("%lld\n",a-b);break;case '*':printf("%lld\n",a*b);break;case '/':printf("%lld\n",a/b);break;case '%':printf("%lld\n",a%b);break;}return 0;}复杂的四则运算#include <>#include <>int main(){static char x[100];int i;scanf("%s",&x);for(i=0;i<strlen(x);i++){if(x[i]>='0'&&x[i]<='9'){continue;}if(x[i]=='*'){x[i-1]=(x[i-1]-'0')*(x[i+1]-'0')+'0';x[i+1]='0';i++;}else if(x[i]=='/'){x[i-1]=(x[i-1]-'0')/(x[i+1]-'0')+'0';x[i+1]='0';i++;}}for(i=1;i<strlen(x);i++){if(x[i]>='0'&&x[i]<='9'){if(x[i-1]=='+'){x[0]+=(x[i]-'0');}else if(x[i-1]=='-'){x[0]-=(x[i]-'0');}}else{continue;}}printf("%c\n",x[0]);return 0;}。
C语言程序设计_西安理工大学中国大学mooc课后章节答案期末考试题库2023年1.for(i=j=0;i<10&&j<8;i++,j+=3)控制的循环体执行的次数是()参考答案:32.对下面程序段,描述正确的是()for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%d",x);}参考答案:最多允许输出100个非负整数3.表示y在(-∞,3]和[23,+∞)范围内为真的表达式为()参考答案:(y<=3)||(y>=23)4.若有定义:char a;int b;float c;double d;则表达式a*b+d-c值的类型为参考答案:double5.设有以下程序,若要使程序的输出值为2,则应该从键盘给n输入的值是()voidmain(){ints=0,a=1,n;scanf("%d",&n);do{s=s+1;a=a-2;}while(a!=n);printf("%d",s);}参考答案:-36.以下不正确的说法是()参考答案:在主函数内定义的变量可在其余函数中通用7.设int a=1,b=2;以下选项中不正确的语句是参考答案:a*3=38.下列程序的运行结果是()#include void fun(); int main() { int a=10; fun();printf("%5d",a); return 0; } void fun() { int a=20; printf("%5d",a);}参考答案:20 109.在下面的叙述中,不正确的是()。
参考答案:枚举常量的值可以是整数或字符串10.已知字符'0'的ASCII码为十六进制的30H,下面程序的输出是()。
c语言程序设计教程慕课版第2版答案一、简介本文档是对慕课版《c语言程序设计教程》第2版的习题答案进行总结和整理。
通过这份答案文档,读者可以更好地理解和掌握C语言程序设计的相关知识。
二、习题答案1. 基本概念与语法1.1 什么是C语言?C语言是一种计算机编程语言,最初由丹尼斯·里奇在20世纪70年代开发出来。
它是一种通用、高级的编程语言,适用于各种计算机平台和操作系统。
1.2 C语言的基本语法有哪些?C语言的基本语法包括注释、数据类型、变量、运算符、控制流语句等。
下面是一些常用的C语言基本语法:•注释:用于说明程序的文字,不会被编译器执行,可以提高代码的可读性。
•数据类型:C语言提供了多种数据类型,包括整型、浮点型、字符型等。
•变量:用于存储数据的容器,必须先声明后使用,并指定数据类型。
•运算符:用于执行各种算术、逻辑和关系操作。
•控制流语句:用于控制程序的执行流程,包括条件语句、循环语句等。
2. 数组与字符串2.1 什么是数组?数组是一组相同类型的数据元素的集合,通过下标访问数组元素。
数组有固定的大小,在声明时指定数组的长度。
2.2 如何声明和初始化数组?声明数组的一般语法如下:数据类型数组名称[数组长度];例如,声明一个包含5个整数的数组:int numbers[5];可以通过下标来访问数组元素,下标从0开始,例如,访问第一个元素:int x = numbers[0];可以使用初始化列表的方式初始化数组,例如:int numbers[5] = {1, 2, 3, 4, 5};2.3 什么是字符串?字符串是一串字符的序列,以空字符(’\0’)结尾。
在C语言中,字符串可以用字符数组来表示。
2.4 如何声明和初始化字符串?声明字符串的一般语法如下:数据类型字符数组名称[长度];例如,声明一个长度为10的字符数组:char str[10];可以使用字符串字面值(用双引号括起来的一串字符)来初始化字符数组,例如:```c char str[10] =。
titleC语言程序设计(郑州轻工业大学) 中国大学mooc答案100分最新版content点击这里,复制通过码第一章绪论第一章单元测验1、通常把高级语言源程序翻译成目标程序的程序称为( )。
答案: 编译程序2、关于C语言,下面叙述不正确的是()。
答案: 不用编译可以直接运行。
3、程序的开发步骤中不包括()。
答案: 编译链接4、 zzuliOJ的1000:从今天开始入坑C语言通过码答案: ikJ3Wx00syCxTCfJJpvCjVRSePQ5、 zzuliOJ的1001:整数a+b 通过码答案: jkJ2W0pnsnCxTCfJJpvCjVRSePU6、 zzuliOJ1002: 简单多项式求值通过码答案: g0QlCkxntSyxTCfJJpvCjVRSePY第二章简单C程序设计第二单元测验1、关于定点数和浮点数的说法,下列说法错误的是()。
答案: 浮点数表示的数即是数值的精确值2、以下哪种运算能从变量x中取得十进制最低位的数字()。
答案: x % 103、以下哪个数字的值最大()。
答案: 1e24、设有变量定义: float x=2.5; double y=6.0; 则表达式 (int)x / y的值为( )。
(如果结果是浮点类型,用小数点后一位数字表示)答案: 3.05、变量的名字代表内存中的存储单元;变量名和内存中的存储单元相对应,通过变量名来存、取存储单元的内容。
答案: 正确6、变量被定义后没有赋值,其值不可以使用,是内存中残留的垃圾值。
答案: 正确7、变量是在程序执行期间其值可以改变的量,必须先定义后使用。
答案: 正确8、当赋值语句右边表达式类型与左边变量类型不一致时,以右边表达式的值作为赋值表达式的值。
答案: 错误9、 zzuliOJ1003:两个整数的四则运算通过码答案: ikcgXkln5yyxTCfJJpvCjVRSePc10、 zzuliOJ1004:三位数的数位分离通过码答案: iUUkWxg2s3CxTCfJJpvCjVRSePA11、 zzuliOJ1005:整数幂通过码答案: gx5zX082t3SxTCfJJpvCjVRSePE12、 zzuliOJ1006:求等差数列的和通过码答案: 2B8gCk5k5SKxTCfJJpvCjVRSePI13、 zzuliOJ1007:鸡兔同笼通过码答案: iUNzXx015nCxTCfJJpvCjVRSePM14、 zzuliOJ1008:美元和人民币通过码答案: ihJzCkoyvXGxTCfJJpvCjVRSePw15、 zzuliOJ1009:求平均分通过码答案: 2BFyWhs2vHexTCfJJpvCjVRSeP016、 zzuliOJ1010:求圆的周长和面积通过码答案: jBRzD043syWxTCfJJpvCjVRSefQ17、 zzuliOJ1011:圆柱体表面积通过码答案: ixcjXxxnsHaxTCfJJpvCjVRSefU18、 zzuliOJ1012:求绝对值通过码答案: iRV2UR8x5iSxTCfJJpvCjVRSefY19、 zzuliOJ1013:求两点间距离通过码答案: 2hEgXEczsCyxTCfJJpvCjVRSefc20、 zzuliOJ1014:求三角形的面积通过码答案: 2BF1Xkg74iexTCfJJpvCjVRSefA21、 zzuliOJ1015:计算时间间隔通过码答案: 2RMnWUk6sXSxTCfJJpvCjVRSefE22、 zzuliOJ1015:银行利率通过码答案: 3xZxWBswvCSxTCfJJpvCjVRSefI第二章简单C程序设计小练习-不计分1、以下哪种运算能从变量x中取得十进制最低位的数字()。
c语言程序设计习题与实践慕课版答案C语言是一种广泛使用的计算机编程语言,对于学习计算机科学和软件开发的人来说是必不可少的。
为了帮助学习者更好地掌握C语言的编程技巧,慕课网推出了《C语言程序设计习题与实践》课程。
本文将提供该课程的一些习题答案和实践内容,旨在帮助读者更好地理解和运用C语言。
第一章:入门篇1. 编写一个C程序,输出"Hello, World!"。
```c#include<stdio.h>int main() {printf("Hello, World!");return 0;}```2. 编写一个C程序,输入两个整数,输出它们的和。
```c#include<stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:\n");scanf("%d%d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```第二章:控制流程1. 编写一个C程序,输入一个整数,判断它是正数、负数还是零,并输出相应的提示信息。
```c#include<stdio.h>int main() {int num;printf("请输入一个整数:\n");scanf("%d", &num);if (num > 0) {printf("它是一个正数。
\n");} else if (num < 0) {printf("它是一个负数。
\n");} else {printf("它是零。
\n");}return 0;}```2. 编写一个C程序,输入一个字符,判断它是大写字母、小写字母还是其他字符,并输出相应的提示信息。
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
第一章1.1题目内容:使用printf()在屏幕上输出hello world!提示:#include <stdio.h>int main(){printf("hello world!\n");return 0;}输入格式:无输出格式:输出提示信息:"hello world!\n"输入样例:输出样例:hello world!#include <stdio.h>int main(){printf("hello world!\n");return 0;}1.2在屏幕上输出多行信息(3分)题目内容:使用printf()函数在屏幕上输出以下多行信息:hello world!hello hit!hello everyone!提示:在printf()函数中转义字符…\n‟表示换行。
输入格式:输出格式:输出提示信息:"hello world!\n""hello hit!\n""hello everyone!\n"输入样例:输出样例:hello world!hello hit!hello everyone!#include <stdio.h>int main(){printf("hello world!\n");printf("hello hit!\n");printf("hello everyone!\n");return 0;}1.3计算半圆弧的周长及半圆面积(3分)题目内容:编程并输出半径r=5.3的半圆弧的周长及该半圆的面积,的取值为3.14159。
要求半径r和必须利用宏常量表示。
输入格式:无输出格式:半圆的面积输出格式: "Area=%f\n"半圆弧的周长输出格式: "circumference=%f\n"输入样例:输出样例:Area=44.123632circumference=16.650427#include<stdio.h>#define PI 3.14159#define R 5.3int main(){printf("Area=%f\n", R*R*PI/2);printf("circumference=%f\n", 2*R*PI/2);return 0;}1.4计算长方体体积(3分)题目内容:编程并输出长1.2、宽4.3、高6.4的长方体的体积。
要求长方体的长、宽、高必须利用const常量表示。
输入格式:无输出格式:长方体的体积输出格式:"volume=%.3f\n"输入样例:输出样例:#include<stdio.h>int main(){const float l=1.2;const float x=4.3;const float y=6.4;printf("volume=%.3f\n", l*x*y);return 0;}第三章3.1计算两个数的平方和(3分)题目内容:从键盘读入两个实数,编程计算并输出它们的平方和,要求使用数学函数pow(x,y)计算平方值,输出结果保留2位小数。
提示:使用数学函数需要在程序中加入编译预处理命令#include <math.h>以下为程序的输出示例:please input x and y:1.2,3.4↙result=13.00输入格式:"%f,%f"输出格式:输入提示信息:"please input x and y:\n"输出格式:"result=%.2f\n"输入样例:输出样例:#include<stdio.h>#include<math.h>int main(){printf("please input x and y:\n");float x, y;scanf("%f,%f",&x,&y);printf("result=%.2f\n",pow(x,2)+pow(y,2));return 0;}3.2逆序数的拆分计算(3分)题目内容:从键盘输入一个4位数的整数,编程计算并输出它的逆序数(忽略整数前的正负号)。
例如,输入-1234,忽略负号,由1234分离出其千位1、百位2、十位3、个位4,然后计算4*1000+3*100+2*10+1 = 4321,并输出4321。
再将得到的逆序数4321拆分为两个2位数的正整数43和21,计算并输出拆分后的两个数的平方和的结果。
以下是程序的输出示例:Input x:-1234↙y=4321a=43,b=21result=2290输入格式:"%d"输出格式:输入提示信息:"Input x:\n"逆序数输出格式:"y=%d\n"逆序数拆分后的输出格式:"a=%d,b=%d\n"平方和的输出格式:"result=%d\n"输入样例:输出样例:#include<stdio.h>int main(){printf("Input x:\n");int x;scanf("%d", &x);if(x<=0){x=-x;}int a,b,c,d;a=x/1000;b=x/100%10;c=x/10%10;d=x%10;printf("y=%d\n", d*1000+c*100+b*10+a);printf("a=%d,b=%d\n", d*10+c, b*10+a);printf("result=%d\n", (b*10+a)*(b*10+a)+(d*10+c)*(d*10+c));return 0;}3.3拆分英文名(3分)题目内容:从键盘输入某同学的英文名(小写输入,假设学生的英文名只包含3个字母。
如: tom),编写程序在屏幕上输出该同学的英文名,且首字母大写(如: Tom)。
同时输出组成该英文名的所有英文字符在26个英文字母中的序号。
以下为程序的输出示例:input your English name:tom↙Tomt:20o:15m:13输入格式:"%c%c%c"输出格式:输入提示信息:"input your English name:\n"首字母大写的英文姓名的输出格式:"%c%c%c\n"姓名中每个字母在26个英文字母中的序号的输出格式:"%c:%d\n"输入样例:输出样例:#include<stdio.h>int main(){printf("input your English name:\n");char a, b, c;scanf("%c%c%c",&a, &b, &c);printf("%c%c%c\n", a+'A'-'a', b, c);printf("%c:%d\n", a, a-'a'+1);printf("%c:%d\n", b, b-'a'+1);printf("%c:%d\n", c, c-'a'+1);return 0;}3.4计算体指数(3分)题目内容:从键盘输入某人的身高(以厘米为单位,如174cm)和体重(以公斤为单位,如70公斤),将身高(以米为单位,如1.74m)和体重(以斤为单位,如140斤)输出在屏幕上,并按照以下公式计算并输出体指数,要求结果保留到小数点后2位。
假设体重为w公斤,身高为h米,则体指数的计算公式为:以下是程序的输出示例:input weight, height:70,174↙weight=140height=1.74t=23.12输入格式:"%d,%d"输出格式:输入提示信息:"input weight, height:\n" (注意:在height和逗号之间有一个空格)体重输出格式:"weight=%d\n"身高输出格式:"height=%.2f\n"体指数输出格式:"t=%.2f\n"输入样例:输出样例:#include<stdio.h>int main(){int x, y;printf("input weight, height:\n");scanf("%d,%d", &x, &y);printf("weight=%d\n", x*2);printf("height=%.2f\n", y/100.0);printf("t=%.2f\n", x/((y/100.0)*(y/100.0)));return 0;}第四章4.1数位拆分v2.0(4分)题目内容:从键盘上输入一个4位数的整数n,编写程序将其拆分为两个2位数的整数a和b,计算并输出拆分后的两个数的加、减、乘、除和求余运算的结果。
例如n=-4321,设拆分后的两个整数为a,b,则a=-43,b=-21。
除法运算结果要求精确到小数点后2位。
求余和除法运算需要考虑除数为0的情况,即如果拆分后b=0,则输出提示信息"the second operater is zero!"程序的运行结果示例1:please input n:1200↙12,0sum=12,sub=12,multi=0the second operater is zero!程序的运行结果示例2:please input n:-2304↙-23,-4sum=-27,sub=-19,multi=92dev=5.75,mod=-3输入格式:"%d"输出格式:输入提示信息:"please input n:\n"拆分后的两个整数的输出格式:"%d,%d\n"加法、减法、乘法的输出格式:"sum=%d,sub=%d,multi=%d\n" 除法和求余的输出格式:"dev=%.2f,mod=%d\n"除数为0的提示信息:"the second operater is zero!\n"输入样例:输出样例:#include <stdio.h>main(){int m,x,y;printf("please input n:\n");scanf("%d",&m);x=m/100;y=m%100;printf("%d,%d\n",x,y);printf("sum=%d,sub=%d,multi=%d\n",x+y,x-y,x*y);if (y!=0){printf("dev=%.2f,mod=%d\n",(float)x/y,x%y);}else{printf("the second operater is zero!\n");}} 4.2区域错误的提示信息:"Error in Area\n"输入样例:输出样例:#include <stdio.h>#include <math.h>int main(){int area;float weight,price,x1,x2;scanf("%d,%f",&area,&weight);if (weight<=1){x1=1.0;}else{x1=1.0;x2=ceil(weight-1);}if (area>0&&area<=4){switch(area){case(0):price=x1*10+x2*3;break;case(1):price=x1*10+x2*4;break;case(2):price=x1*15+x2*5;break;case(3):price=x1*15+x2*6.5;break;case(4):price=x1*15+x2*10;break;}printf("Price: %5.2f\n",price);}else {printf("Error in Area\n");printf("Price: 0.00\n");}return 0;}4.3数据区间判断(5分)题目内容:从键盘输入一个int型的正整数n(已知:0<n<10000),编写程序判断n落在哪个区间。