2021年C语言习题题库作答完整.docx
《2021年C语言习题题库作答完整.docx》由会员分享,可在线阅读,更多相关《2021年C语言习题题库作答完整.docx(64页珍藏版)》请在咨信网上搜索。
程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:编程求某年第n天日期。用数组表达月天数。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> main() { int y,m,f,n; int a[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf("y,n="); scanf("%d,%d",&y,&n); /***********SPACE***********/ f=y%4==0&&y%100!=0【||】y%400==0; /***********SPACE***********/ a[1]【+=】f; if(n<1||n>365+f) { printf("error!\n");exit(0); } /***********SPACE***********/ for(m=1;m【>】a[m-1];n-=a[m-1],m++); printf("y=%d,m=%d,d=%d\n",y,m,n); } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 题目:下列程序从键盘输入所需数据,求出z值并输出,规定输出成果保存2位小数。 -------------------------------------------------------*/ #include <stdio.h> /***********SPACE***********/ 【#include<math.h>】 main() { int x; double y,z; /***********SPACE***********/ scanf("【%d%lf】",&x,&y); z=2*x*sqrt(y); /***********SPACE***********/ printf("z=【%lf】",z); } 程序改错 共1题 第1题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:将s所指字符串中字母转换为按字母序列后续字母(但 Z转换为A,z转换为a),其他字符不变。 ------------------------------------------------------*/ #include <stdio.h> #include <ctype.h> #include <conio.h> void fun (char *s) //函数定义 { /***********FOUND***********/ while(*s!=’0’) //字符串结尾标志为‘0’ { if(*s>='A' && *s <= 'Z' || *s >= 'a' && *s<='z') { if(*s=='Z') *s='A'; else if(*s=='z') *s='a'; else /***********FOUND***********/ *s += 1; //s为字符指针,而*s为指针所指字符 } /***********FOUND***********/ s++ } } main() { char s[80]; printf("\n Enter a string with length < 80. :\n\n "); gets(s); printf("\n The string :\n\n "); puts(s); fun ( s ); //函数调用 printf ("\n\n The Cords :\n\n "); puts(s); } 程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算圆周率近似值。 -------------------------------------------------------*/ #include <stdio.h> #include <math.h> main() { int s,n; /***********SPACE***********/ double 【pi】,t; t=1;pi=0;n=1;s=1; /***********SPACE***********/ while(【fabs(t)】>=2e-6) //fabs()为求绝对值函数 { pi+=t;n+=2;s=-s;t=s/n; } /***********SPACE***********/ pi*=【4】; printf("pi=%.6f\n",pi); } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入一奇数n,打印由1->n*n构成魔方矩阵。魔方矩阵 行列及对角线和都相等。 魔方矩阵:8 1 6 3 5 7 4 9 2 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #define MAXSiZE 20 void main(void) { int matrix[MAXSiZE][MAXSiZE]; int count; int row; int column; int n; char line[100]; printf("\nOdd n Magic Square Generator"); printf("\n================================"); printf("\n\nn Please --> "); gets(line); n = atoi(line); if (n > MAXSiZE) printf("\n*** ERROR *** n should be <= %d",MAXSiZE); else if (n % 2 == 0) printf("\n*** ERROR *** n must be an odd integer"); else { row = 0; column = n/2; for (count = 1;count <= n*n;count++) { matrix[row][column] = count; /***********SPACE***********/ if (【count/n】 == 0) row++; else { /***********SPACE***********/ row= (row == 【0】) ?n - 1 :row - 1; /***********SPACE***********/ column = (column == 【n-1】) ?0 :column + 1; } } printf("\n\nMagic Square of n %d :\n\n",n); for (row = 0;row < n;row++) { for (column = 0;column < n;column++) printf("%4d",matrix[row][column]); printf("\n"); } } } 程序改错 共1题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求1到10阶乘和。 ------------------------------------------------------*/ #include <stdio.h> float fac(int n); //函数声明 main() { int i; float s=0; float fac(int n); //函数声明应放在主函数之前,这句放错位置了,删了吧,也可以不改,可以运营,但良好习惯就是改 /**********FOUND**********/ for(i=1;i<10;i++) /**********FOUND**********/ s+=fac(i); //函数调用 printf("%f\n",s); } float fac(int n) //函数定义 { /**********FOUND**********/ float y=1; //int改为float,否则会导致数据丢失,固然也可以不改,毕竟你们没学到 int i; for(i=1 ;i<=n;i++) y=y*i; /**********FOUND**********/ return y; } 程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:删除字符串中指定字符,字符串和要删除字符均由键盘 输入。 -------------------------------------------------------*/ #include <stdio.h> main() { char str[80],ch; int i,k=0; /***********SPACE***********/ gets(【str】); //输入字符串 放入str[] ch=getchar(); /***********SPACE***********/ for(i=0;【str[i]】;i++) //循环到字符串结束为止 if(str[i]!=ch) //如果没找到就将原字符赋值过去 找到要删除就跳过继续找 { /***********SPACE***********/ 【str[k]=str[i]】; //在同一种数组中操作,背面字符覆盖了前面要删除位置 k++; } /***********SPACE***********/ 【str[k]=’\0’】; //在新字符串结尾处加结束符 puts(str); //输出 } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入一种整数,计算它也许是哪两个整数平方和,并打印 成果数据。 如:34是5和3或3和5平方和。 -------------------------------------------------------*/ #include <stdio.h> /* for i/O functions */ #include <stdlib.h> /* for atoi() */ #include <math.h> /* for sqrt() */ void main(void) { int given; /* the given number */ int row,column; /* row and column indicators*/ int count; /* number of solutions */ char line[100]; printf("\nRepresenting a Given Number as the Sum of Two Squares"); printf("\n=====================================================\n"); printf("\nAn integer Please ---> "); gets(line); given = atoi(line); printf("\nCount X Y"); printf("\n----- ----- -----"); row = 1; /* starts from far enough */ column = (int) (sqrt((double) given) + 0.5); count = 0; /* so solution yet */ while (row <= given && column > 0) /* scan down... */ if (row*row + column*column == given) { /***********SPACE***********/ 【count++】; printf("\n%5d%7d%7d",count,row,column); row++; column--; } else if (row*row + column*column > given) /***********SPACE***********/ 【column--】; else /***********SPACE***********/ 【row++】; if (count == 0) printf("\n\nSorry,NO ANSWER found."); else printf("\n\nThere are %d possible answers.",count); } 程序改错 共1题 第1题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:计算并输出k以内最大10个能被13或17整除自然数之和。 k值由主函数传入。 例如:若k值为500,则函数值为4622。 ------------------------------------------------------*/ #include <stdio.h> int fun(int k) { int m=0,mc=0; /**********FOUND**********/ while ((k>=2)&&(mc<10)) { /**********FOUND**********/ if((k%13==0)||(k%17==0)) { m=m+k; mc++; } /**********FOUND**********/ k--; } /**********FOUND**********/ return m; } void main() { printf("%d\n",fun(500)); } 程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:当输入“2,5”时候输出为“2 5 5” -------------------------------------------------------*/ #include <stdio.h> #define max 100 main() { int f[max],i,j,k,m; scanf("%d,%d",&k,&m); /***********SPACE***********/ for(i=0;i<=【2】;i++) f[i]=0; /***********SPACE***********/ f[【k-1】]=1; for(i=k;i<=m;i++) /***********SPACE***********/ for(j=i-k;j<=i-1;j++) f[i]【=1+】f[j]; printf("%d%10d%10d\n",k,m,f[m]); } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:辨认输入字符串,每个单词输出一行 -------------------------------------------------------*/ #include <stdio.h> #include <string.h> void main() { int c; int inspace; /***********SPACE***********/ 【inspace=0】; while((c = getchar()) != '\n') { if(c == ' ' || c == '\t' || c == '\n') { /***********SPACE***********/ if(【inspace=0】) { inspace = 1; putchar('\n'); } } else { inspace = 0; /***********SPACE***********/ 【putchar(c)】; } } } 程序改错 共1题 第1题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:用选取法对数组中n个元素按从小到大顺序进行排序。 ------------------------------------------------------*/ #include <stdio.h> #define N 20 void fun(int a[],int n) { int i,j,t,p; for (j = 0 ;j < n-1 ;j++) { /**********FOUND**********/ p = j; for (i = j;i < n;i++) /**********FOUND**********/ if(a[i] >a[p]) /**********FOUND**********/ p=i; t = a[p] ; a[p] = a[j] ; a[j] = t; } } main() { int a[N]={9,6,8,3,-1},i,m = 5; printf("排序前数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); fun(a,m); printf("排序后数据:") ; for(i = 0;i < m;i++) printf("%d ",a[i]); printf("\n"); } 程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:产生10个[30,90]区间上随机整数,然后对其用选取法 进行由小到大排序。 -------------------------------------------------------*/ #include <stdio.h> #include<stdlib.h> main() { /***********SPACE***********/ int t; int i,j,k; int a[10]; for(i=0;i<10;i++) a[i]=rand()%61+30; for(i=0;i<9;i++) { /***********SPACE***********/ k=i; for(j=i+1;j<10;j++) /***********SPACE***********/ if(a[k]>a[j]) k=j; if(k!=i) { t=a[k]; a[k]=a[i]; a[i]=t; } } /***********SPACE***********/ for(i=0;i<10;i++ ) printf("%5d",a[i]); printf("\n"); } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输入一正整数n、打印1-n可以构成所有自然数集合 (包括空集)。 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> #define MAXSiZE 20 #define LOOP 1 void main(void) { int set[MAXSiZE]; int n,i; int position; char line[100]; printf("\nAll Possible Subsets Generation by Lexical Order"); printf("\n================================================"); printf("\n\nNumber of Elements in the Set --> "); gets(line); n = atoi(line); printf("\n{}"); position = 0; set[position] = 1; while (LOOP) { /***********SPACE***********/ printf("\n{%d",【?】); for (i = 1;i <= position;i++) printf(",%d",set[i]); printf("}"); if (set[position] < n) { /***********SPACE***********/ set[【?】] = set[position] + 1; position++; } else if (position != 0) set[--position]++; else /***********SPACE***********/ 【?】; } } 程序改错 第1题 /*------------------------------------------------------ 【程序改错】 -------------------------------------------------------- 功能:求出如下分数序列前n项之和。和值通过函数值返回main 函数。 2/1+3/2+5/3+8/5+13/8+21/13 …… 例如:若n = 5,则应输出:8.391667。 ------------------------------------------------------*/ #include <conio.h> #include <stdio.h> /**********FOUND**********/ fun ( int n ) { int a,b,c,k;double s; s = 0.0;a = 2;b = 1; for ( k = 1;k <= n;k++ ) { /**********FOUND**********/ s = (double)a / b; c = a; a = a + b; b = c; } /**********FOUND**********/ return c; } main( ) { int n = 5; printf( "\nThe value of function is:%lf\n",fun ( n ) ); } 程序填空 共2题 第1题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:输出成果为: * * * * * * * * * * * * * * * * * * * * -------------------------------------------------------*/ #include <stdio.h> main() { /***********SPACE***********/ static char 【?】={'*','*','*','*','*'}; int i,j,k; char space=' '; for(i=0;i<5;i++) { printf("\n"); for(j=1;j<=3*i;j++) /***********SPACE***********/ printf("%1c",【?】); /***********SPACE***********/ for(k=0;k<【?】;k++) printf("%3c",a[k]); } printf("\n");; } 第2题 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:给出一种正整数,找到一组持续数,使之累加和等于给 定正整数。输出存在多少组这样持续数,及每组左 右边界。 例如:15=1+2+3+4+5 15=4+5+6 15=7+8 因此成果有3组值分别是1->5,4->6,7->8 -------------------------------------------------------*/ #include <stdio.h> #include <stdlib.h> void main(void) { long left,right; long sum; long GiVEN; int count = 0; char line[100]; printf("\nConsecutive sum to a fixed given number"); printf("\n=======================================\n"); printf("\nYour number (> 0) please ---> "); gets(line); GiVEN = atol(line); for (sum = 0,right = 1;sum < GiVEN;sum += right,right++) ; for (left = 1,right--;left <= GiVEN/2;) if (sum > GiVEN) { sum -= left; /***********SPACE***********/ 【?】; } else { if (sum == GiVEN) { printf("\n%ld = sum from %ld to %ld", GiVEN,left,right); /***********SPACE***********/ 【?】;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2021 语言 习题 题库 作答 完整
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文