C语言设计 答案_第1页
C语言设计 答案_第2页
C语言设计 答案_第3页
C语言设计 答案_第4页
C语言设计 答案_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章初识C语言和程序设计1.选择题1、C 2、A 3、D 4、D 5、A 6、D 7、B 8、B9、D 10、C 2.填空题(1)主函数或main()函数,main()(2)机器语言,高级语言(3)1972,ANSIC(4).c,.obj,.exe(5)/**/,//(6)编辑、编译、连接、运行(7)分号(8)函数首部,函数体3.编程题(1)#include<stdio.h>main(){printf("******************************************\n");printf("ThisismyfirstClanguageprogram.\n");printf("******************************************\n");}(2)#include<stdio.h> intmain(){ inta=8,b=6,s; s=a*b; printf("长方形的面积s:%d\n",s); }

第2章C语言数据与运算1.选择题1、C 2、C 3、C 4、D 5、B 6、A 7、B 8、D9、D 10、C 11、B12、A13、A 14、A15、C16、A2.填空题(1)单引号双引号(2)优先级自左向右(3)字母、数字、下划线字母、下划线(4)ASCII码(5)1(6)1583159(7)1021(8)46(9)28(10)643203.编程题(1)#include<stdio.h>intmain(){ intnum1,num2,temp; printf("请输入两个整数:\n"); scanf("%d%d",&num1,&num2); if(num1<num2) { temp=num1;num1=num2;num2=temp; } printf("两个数的商是%d,余数是%d\n",num1/num2,num1%num2); return0;}(2)#include<stdio.h>intmain(){ charc; printf("InputaCapital:\n"); scanf("%c",&c); printf("Lowercase:%c\n",c+32); return0;}(3)#include<stdio.h>main(){doubleprice;intnum;price=150;num=3;printf("%lf\n",price*num);}第3章程序的结构化设计1.选择题1、A 2、B 3、D 4、C 5、A6、B 7、A 8、B 9、C 10、C 11、B 12、A 13、B 14、B 15、C 16、D17、B 18、A 19、A 20、D 21、A 22、B 23、A 24、A 25、D2.填空题(1)顺序(2)输出输入(3)main(4)条件表达式(5)ifelse(6)break(7)整型(8)01(9)剩余(10)终止(11)012(12)0134(13)A012(14)012(15)真(true)(16)完整的一轮(17)02(18)1-11-22-12-23-13-2(19)1098(20)543213.编程题(1)#include<stdio.h>intmain(){inti,j,isPrime;printf("1到100之间的素数为:\n");//遍历1到100之间的所有数字for(i=2;i<=100;i++){isPrime=1;//假设当前数字是素数//检查当前数字是否能被2到i-1之间的数字整除for(j=2;j*j<=i;j++){//只需检查到sqrt(i)if(i%j==0){isPrime=0;//如果能整除,则不是素数break;}}//如果isPrime仍为1,则i是素数if(isPrime){printf("%d",i);}}printf("\n");return0;}(2)#include<stdio.h>intmain(){intnum;//用于存储用户输入的数字//提示用户输入一个三位数printf("请输入一个三位数:");//循环读取用户输入,直到输入合法while(1){scanf("%d",&num);//判断输入是否为三位数if(num>=100&&num<=999){break;//输入合法,退出循环}else{printf("输入错误!请输入一个三位数:");}}//反向输出三位数intreversedNum=0;inttemp=num;//分离各位数字并重新组合reversedNum=(temp%10)*100+((temp/10)%10)*10+(temp/100);//输出结果printf("反向输出的结果是:%d\n",reversedNum);return0;}

第4章数组1.选择题1、C 2、A 3、B 4、C 5、A6、C 7、C 8、A 9、A 10、C 11、B 12、B 13、A 14、B 15、A 2.填空题(1)0(2)\0(3)6(4)字符串结束符\0(5)只读(6)相等3.编程题(1)编程实现,定义一个二维数组a[3][3],找出二维数组中的最大值及其位置。#include<stdio.h>intmain(){inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intmax=a[0][0];introw=0,col=0;inti,j;for(i=0;i<3;i++){for(j=0;j<3;j++){if(a[i][j]>max){max=a[i][j];row=i;col=j;}}}printf("二维数组的最大值为:%d,位于第%d行第%d列\n",max,row+1,col+1);return0;}(2)编程实现,定义一个二维数组a[3][3],计算二维数组中所有元素的总和。#include<stdio.h>intmain(){inti,j;inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};intsum=0;for(i=0;i<3;i++){for(j=0;j<3;j++){sum+=a[i][j];}}printf("二维数组的总和为:%d\n",sum);return0;}(3)编程实现,将两个字符串连接起来,不使用strcat()函数。#include<stdio.h>#include<string.h>intmain(){charstr1[100];//定义第一个字符串,确保足够大以容纳拼接结果charstr2[100];//定义第二个字符串inti;//提示用户输入两个字符串printf("请输入第一个字符串:");scanf("%s",str1);//使用scanf读取第一个字符串(不包含空格)printf("请输入第二个字符串:");scanf("%s",str2);//使用scanf读取第二个字符串(不包含空格)intlen1=strlen(str1);//获取第一个字符串的长度intlen2=strlen(str2);//获取第二个字符串的长度//将第二个字符串逐个字符复制到第一个字符串的末尾for(i=0;i<len2;i++){str1[len1+i]=str2[i];}//在拼接后的字符串末尾添加字符串结束符'\0'str1[len1+len2]='\0';//输出拼接后的字符串printf("拼接后的字符串为:%s\n",str1);return0;}如果希望支持带空格的字符串输入,可以改用scanf("%[^\n]",str)或逐字符读取的方法。以下是修改后的代码:#include<stdio.h>#include<string.h>intmain(){charstr1[100];//定义第一个字符串charstr2[100];//定义第二个字符串inti;//提示用户输入两个字符串(支持带空格)printf("请输入第一个字符串:");scanf("%[^\n]",str1);//使用%[^\n]读取一行(包括空格)printf("请输入第二个字符串:");scanf("%[^\n]",str2);//使用%[^\n]读取一行(包括空格)intlen1=strlen(str1);//获取第一个字符串的长度intlen2=strlen(str2);//获取第二个字符串的长度//将第二个字符串逐个字符复制到第一个字符串的末尾for(i=0;i<len2;i++){str1[len1+i]=str2[i];}//在拼接后的字符串末尾添加字符串结束符'\0'str1[len1+len2]='\0';//输出拼接后的字符串printf("拼接后的字符串为:%s\n",str1);return0;}

第5章函数1.选择题1、B 2、A 3、C 4、B 5、A6、C 7、C 8、C 9、C 10、D 11、B 12、D 13、C 14、A 15、A 16、B17、 B 18、B2.填空题(1)main(2)参数列表(3)void(4)实参(5)形参(6)地址传递(7)int(8)局部(9)static(10)释放3.编程题(1)编程实现,调用函数实现键盘输入一个整数,判断是否为素数。#include<stdio.h>#include<math.h>//用于sqrt函数优化判断效率//函数声明intisPrime(intn);intmain(){intnum;//输入提示printf("请输入一个大于1的整数:");scanf("%d",&num);//输入合法性检查if(num<=1){printf("输入无效,请输入一个大于1的整数。\n");return1;}//调用函数判断是否为素数if(isPrime(num)){printf("%d是一个素数。\n",num);}else{printf("%d不是一个素数。\n",num);}return0;}//函数定义:判断一个数是否为素数intisPrime(intn){inti;if(n<=1)return0;//小于等于1的数不是素数if(n==2)return1;//2是最小的素数if(n%2==0)return0;//排除偶数//只需要判断到sqrt(n)for(i=3;i<=(int)sqrt(n);i+=2){if(n%i==0){return0;//如果能被整除,则不是素数}}return1;//否则是素数}(2)编程实现,调用函数实现键盘输入一个整数,将它逆序输出。#include<stdio.h>//函数声明voidreverseNumber(intn);intmain(){intnum;//输入提示printf("请输入一个整数:");scanf("%d",&num);//调用函数逆序输出printf("逆序输出为:");reverseNumber(num);printf("\n");return0;}//函数定义:逆序输出一个整数voidreverseNumber(intn){intdigit;intreversed=0;intisNegative=0;//处理负数if(n<0){isNegative=1;n=-n;}//特殊情况:输入为0if(n==0){printf("0");return;}//逆序处理while(n>0){digit=n%10;reversed=reversed*10+digit;n/=10;}//如果原数是负数,逆序后也要加负号if(isNegative){printf("-%d",reversed);}else{printf("%d",reversed);}}

第6章指针1.选择题1、A 2、A 3、B 4、A 5、C6、D 7、C 8、B 9、D 10、C 11、B 12、C 13、A 14、B 15、A 2.填空题(1)地址(2)int*p;(3)&(4)*(5)char*(6)只读3.编程题(1)编程实现,定义一个函数,实现用指针对两个数进行交换。#include<stdio.h>voidexchange(int*p,int*q){ intt; t=*p; *p=*q; *q=t;}main(){ inta,b; printf("请输入两个数:"); scanf("%d%d",&a,&b); if(a>b) exchange(&a,&b); printf("两个数从小到大排序为:%d,%d\n",a,b);}(2)编程实现,用字符指针实现求字符串长度。#include<stdio.h>main(){ charstr[100],*p; intk=0; p=str; printf("请输入一个字符串:"); gets(p); for(;*p!='\0';p++) k++; printf("该字符串的长度为%d\n",k);}(3)编程实现,用指针实现数组元素最大值输出。#include<stdio.h>main(){ inta[10],*p,max; printf("请输入10个数:"); for(p=a;p<a+10;p++) scanf("%d",p); max=*p; for(p=a;p<a+10;p++) if(max<*p) max=*p; printf("数组中最大值为%d\n",max);}

第7章结构体和共同体1.选择题1、B 2、A 3、B 4、B 5、D6、C 7、A 8、D 9、C 10、D 11、D 12、A 2.填空题(1)用户自定义(2)点(.)(3)未定义(4)多种类型3.编程题编程实现,学生成绩汇总统计,要求实现如下功能。(1)从键盘录入学生成绩信息,包括学号、姓名、班级、课程成绩。(2)计算每名学生的总成绩和平均成绩。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX_STUDENTS100//最大学生人数#defineNAME_LEN50//姓名最大长度#defineCLASS_LEN50//班级最大长度//定义学生结构体typedefstruct{charid[20];//学号charname[NAME_LEN];//姓名charclass[CLASS_LEN];//班级floatchinese;//语文成绩floatmath;//数学成绩floatenglish;//英语成绩floattotal;//总成绩floataverage;//平均成绩}Student;//函数声明voidinputStudentInfo(Studentstudents[],intn);voidcalculateScores(Studentstudents[],intn);voidprintStudentInfo(constStudentstudents[],intn);intmain(){intn;printf("请输入学生人数(最多%d人):",MAX_STUDENTS);scanf("%d",&n);if(n<=0||n>MAX_STUDENTS){printf("输入人数不合法!\n");return1;}Studentstudents[MAX_STUDENTS];//录入学生信息inputStudentInfo(students,n);//计算总成绩和平均成绩calculateScores(students,n);//输出学生信息printStudentInfo(students,n);return0;}//录入学生信息voidinputStudentInfo(Studentstudents[],intn){inti;for(i=0;i<n;i++){printf("\n请输入第%d位学生的成绩信息:\n",i+1);printf("学号:");scanf("%s",students[i].id);printf("姓名:");scanf("%s",students[i].name);printf("班级:");scanf("%s",students[i].class);printf("语文成绩:");scanf("%f",&students[i].chinese);printf("数学成绩:");scanf("%f",&students[i].math);printf("英语成绩:");scanf("%f",&students[i].english);}}//计算总成绩和平均成绩voidcalculateScores(Studentstudents[],intn){inti;for(i=0;i<n;i++){students[i].total=students[i].chinese+students[i].math+students[i].english;students[i].average=students[i].total/3.0f;}}//打印学生信息voidprintStudentInfo(constStudentstudents[],intn){inti;printf("\n学生成绩汇总统计如下:\n");printf("-----------------------------------------------------------------\n");printf("%-10s%-10s%-10s%-6s%-6s%-6s%-6s%-8s\n","学号","姓名","班级","语文","数学","英语","总成绩","平均成绩");printf("-----------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%-10s%-10s%-10s%-6.2f%-6.2f%-6.2f%-6.2f%-8.2f\n",students[i].id,students[i].name,students[i].class,students[i].chinese,students[i].math,students[i].english,students[i].total,students[i].average);}printf("-----------------------------------------------------------------\n");}第8章文件1.选择题1、B 2、C 3、A 4、D 5、B6、C 7、B 8、A 9、A 10、D 11、C 12、A 13、A 14、B 15、A 16、C2.编程题(1)编程实现,读取文件file.txt文件内容,并将文件内容显示到屏幕上。#include<stdio.h>#i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论