第八次c语言作业
C语言第8章习题及答案
第八章用一个数组存放图书信息,每本书是一个结构,包括下列几项信息:书名、作者、出版年月、借出否,试写出描述这些信息的说明,并编写一个程序,读入若干本书的信息,然后打印出以上信息。
#include <>typedef struct{char Name[20];char Author[20];int Date_Year;int Date_Month;int loaned;?} BOOK;#define N 10void main(){BOOK books[N];int i;for (i=0;i<N;i++)】{printf("Input Book's Name:");gets(books[i].Name);printf("Input Book's Author:");gets(books[i].Author);printf("Input Book's Year of Publishing:");scanf("%d",&books[i].Date_Year);printf("Input Book's Month of Publishing:");scanf("%d",&books[i].Date_Month);printf("Input Book's Status, 1-Loaned, 2-Keepin:");"scanf("%d",&books[i].loaned);}for (i=0;i<N;i++){printf("Book: %s, Author: %s, Publishing:%d-%d, Status:%d\n", books[i].Name, books[i].Author, books[i].Date_Year, books[i].Date_Month, books[i].loaned);}}|编写一个函数,统计并打印所输入的正文中的各个英文单词出现的次数,并按次数的递减顺序输出。
C语言第8次实训题目及参考答案
if(sushu(i+2)==1) {
printf("%d %d\n",i,i+2); count++; } } } printf("200~1000 范围内容一共%d 对双胞胎数\n",count); }
t=t*a; } return t; } void main() { int n,m,i,j,s=0;//i 是底数,j 是指数 scanf("%d,%d",&n,&m); for(i=n,j=m;i<=m;i++,j--) {
s+=mi(i,j); } printf("s=%ld",s); }
4、求[200,1000]的双胞胎数的对数。双胞胎数:两素数差为 2 称为双胞胎数。 提示:在第 2 题的基础上进行修改:自定义函数不变,在 main()函数中实现对双胞胎数的 判断:如果 a 是素数,再进一步判断 a+2 是不 0 是素数。如果 a+2 也是素数,则 a、a+2 为 双胞胎数。 参考代码: int sushu(int i) {
for(j=2;j*j<=i;j++) {
if(i%j==0) {
flag=0; break; } } return flag; }
#include <stdio.h> void main() {
int i,count=0; for(i=200;i>=2;i--) {
if(sushu(i)==1) {
printf("%d ",i); count++; }
C语言实验
提交作业要求1.建立一个学号+姓名文件夹(如:20111234张志),建立一个实验报告文件(实验报告.txt或实验报告.doc均可),将实验步骤和程序运行结果拷贝到.txt文件或.doc文档中(可用Alt+PrtSc组合键抓屏),把每次的实验报告(.txt或.doc)和源程序(.C文件)放在学号+姓名文件夹中,上传到教师机“03/09教学班”下面对应的班级文件夹中,下机前把文件夹删除。
2.课外编程题提交到教师机“程序设计”文件夹中。
上机注意事项●运行程序时,应在英文状态下输入数据。
●上一个程序运行结束后, 要关闭工作区或VC窗口, 重新建立一个文件,输入下一个程序。
●编译时死机,将原程序窗口最小化,将程序拷贝到重新打开的VC文件中,可激活系统。
第一次实验(基本程序设计)★预习: 上机指导P4~10详细阅读上机指导P6~7, 掌握vc++6.0的使用方法。
★实验内容:(1)实验1(P5)①(p6)2. 调试修改(改错:求由键盘输入的任意两个整数的乘积。
)#include<stdio.h>void main(void){ int c;scanf(“%d,%d”,&x,&y);/**********FOUND**********/c=a*b/**********FOUND**********/printf(“The product is:%d\n”,c)}②(p7)3.完善程序(程序填空:求圆面积)#define PI 3.14159#include<stdio.h>void main(void){ float r ;double area;scanf(“%f”, &r);/**********SPACE**********/area=【?】;printf(“area=%f\n”, area);}(2)学习编程:①编写一个两个整数相乘的C程序,要求输出格式为: c=3*4=12②从键盘输入三个整数,计算并输出三个整数的平均值。
C语言第八次作业答案
9.2 文件的打开和关闭
文件类型(FILE)指针 fopen函数 fclose函数
文件类型(FILE)指针
FILE类型 处理一个文件应知它的各种信息,这些信息由系统将其构 成一个结构体类型,取名 FILE,谓之文件类型,其定义 放在stdio.h头文件中。
typedef struct { short level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ short bsize; /* Buffer size */ unsigned char *buffer; /* Data transfer buffer */ unsigned char *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE;
fopen-文件打开函数
原型:FILE *fopen ( char *filename, char *mode ); 调用时: • filename(文件名)为要打开文件的文件名(字符 串),可写成: "test.dat" 或定义过 char s[ ] ="test.dat"; 则写 s ; 或定义过 char *pc ="test.dat"; 则写 pc ; 或定义过 #define ff "test.dat"; 则写 ff 。
2016C语言习题全集及答案:第八单元结构体和共用体
第八单元结构体和共用体一、选择题1、说明一个结构体变量时系统分配给它的内存是。
A. 各成员所需要内存量的总和B. 结构体中第一个成员所需内存量C. 成员中占内存量最大者所需的容量D. 结构中最后一个成员所需内存量2、 C 语言结构体类型变量在程序执行期间。
A. 所有成员一直驻留在内存中B. 只有一个成员驻留在内存中C. 部分成员驻留在在内存中D. 没有成员驻留在内存中3、设有以下说明语句struct stu { int a ; float b ; } stutype ;则下面的叙述不正确的是。
A. struct 是结构体类型的关键字B. struct stu 是用户定义的结构体类型C. stutype 是用户定义的结构体类型名D. a 和b 都是结构体成员名4、程序中有下面的说明和定义struct abc { int x;char y;}struct abc s1,s2;则会发生的情况是。
A. 编译出错B. 程序将顺利编译、连接、执行C. 能顺利通过编译、连接、但不能执行D. 能顺利通过编译、但连接出错5、有如下定义struct person { char name[9]; int age;};struct person class[10]={ " Johu", 17,"Paul", 19,"Mary", 18,"Adam",16};根据上述定义,能输出字母M 的语句是。
A. prinft(" %c\n",class[3].name);B. printf(" %c\n",class[3].name[1]);C. prinft(" %c\n",class[2].name[1]);D. printf(" %c\n",class[2].name[0]);6、下面程序的输出是。
南航C语言课后习题08答案
5.答案 #include <stdio.h> #include <math.h> struct coordinate { double x; double y; double z; }; main( ) { void Print(struct coordinate x); struct coordinate Input(); double distance(struct coordinate x,struct coordinate y); struct coordinate a,b;
Байду номын сангаас
score 78 89 78 99
4444 */
dddd
99
2.答案 #include <stdio.h> #include <ctype.h> int daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, {0,31,29,31,30,31,30,31,31,30,31,30,31}}; struct data { int year, month, day; }dt; int day_of_year(int year, int month, int day) { int i, leap; leap=((year%4==0&&year%100!=0)||year%400==0); for(i=1; i<month; i++) day+=daytab[leap][i]; return day; } void inver(char s[]) { int i=0; while(isdigit(s[i])) { dt.year=dt.year*10+s[i]-'0'; i++; } i++; while(isdigit(s[i])) { dt.month=dt.month*10+s[i]-'0'; i++; } i++; while(isdigit(s[i])&&s[i]) { dt.day=dt.day*10+s[i]-'0'; i++; } } main( ) {
北航大一上c语言第四五六七八次作业
3. 字母频率统计【问题描述】编写程序从标准输入中读入一段英文,统计其中小写字母出现次数,并以柱状图的形式显示其出现次数。
【输入形式】在标准输入上输入一段英文文章(可能有一行,也可能有多行),在新的一行的开头输入ctrl+z键表示结束。
【输出形式】在屏幕上依次输出表示每个小写字母出现次数的柱状图(以“*”字符表示柱状图,空白处用空格字符表示,某个小写字母出现多少次,就显示多少“*”字符;柱状图的高度以出现最多的字母次数为准),在最后一行依次输出26个小写字母。
【样例输入】The computing world has undergone arevolution since the publication ofThe C Programming Language in 1978.【样例输出】【样例说明】在输入的英文短文中,小写字母a出现了6次,所以其上输出了6个字符"*"。
出现次数最多的是字母n,所以柱状图的高度为9个字符。
字母j没有出现,所以其上都为空格字符。
【评分标准】该题要求输出柱状图表示的字母出现次数,共有5个测试点。
上传C语言文件名为bar.c。
【输入形式】从标准输入读取顶点坐标。
格式为:第一行是点的个数N(3≤N≤15),后面紧接着N 行,每行两个数字(由空格隔开),分别表示该点的X、Y坐标(0≤X,Y≤32767)。
所有点的坐标互不相同,且按顺时针次序给出。
输入数据确保该多边形是一个凸多边形。
【输出形式】向标准输出打印一个浮点数,是该多边形的面积。
该浮点数保留两位小数。
【输入样例】 43 330101 2【输出样例】5.00【样例说明】输入数据表示了如图所示的四边形。
其面积为5.00。
提示:求三角形面积可用海伦公式,求平方根可用<math.h>头文件中定义的sqrt函数。
【评分标准】结果完全正确得20分,每个测试点4分。
提交程序名为:points.c。
C语言程序设计第四版第八章答案
第八章指针8.1输入三个整数,按由小到大的顺序输出。
main(){ int a,b,c,*p1,*p2,*p3,t;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2){t=p1;p1=p2;p2=t;}if(*p1>*p3){t=p1;p1=p3;p3=t;}if(*p2>*p3){t=p2;p2=p3;p3=t;}printf("%d,%d,%d\n",*p1,*p2,*p3);}或main(){int a,b,c,*p1,*p2,*p3,t;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(a>b){t=*p1;*p1=*p2;*p2=t;}if(a>c){t=*p1;*p1=*p3;*p3=t;}if(b>c){t=*p2;*p2=*p3;*p3=t;}printf("%d,%d,%d\n",a,b,c);}8.2输入三个字符串,按由小到大的顺序输出#define N 3#define M 20main(){char str0[N][M],str1[M],*p,*q;int i,l,m,n;q=str0;for(;p<q+N;p++)gets(p);l=strcmp(q,q+1);if(l>0){strcpy(str1,q);strcpy(q,q+1);strcpy(q+1,str1);} m=strcmp(q,q+2);if(m>0){strcpy(str1,q);strcpy(q,q+2);strcpy(q+2,str1);} n=strcmp(q+1,q+2);if(n>0){strcpy(str1,q);strcpy(q+1,q+2);strcpy(q+2,q+1);}for(p=q;p<q+N;p++)puts(p);}8.3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。
第八章 C语言习题及答案(第八章)
8-1 编写程序,将10个数34,3,29,63,70,16,85,82,90,93存放于一组数组中,求出这十个数的和及平均值。
解:#include "stdio.h"void main(){int a[10]={34,3,29,63,70,16,85.82,90,93};int i ,sum=0;float average ;for(i=0;i<10;i++){sum=sum+a[i] ;}average=sum/10.0;printf("sum=%d,average=%f\n",sum,average);}运行结果:sum=565,average=56.5000思考:数组有何特点?此问题如果不用数组进行处理将会怎样?8-2 编写程序,求存放于上题数组中10个数的最大值,最小值及所在的位置。
解:#include "stdio.h"void main(){int a[10]={34,3,29,63,70,16,85,82,90,93};int i,sum,max,min,d_max,d_min;max=min=a[0];d_max=d_min=0;for(i=1;i<10;i++){if(a[i]>max) {max=a[i];d_max=i;}if(a[i]<min) {min=a[i];d_min=i;}}printf("max=%d,a[%d]\n",max,d_max);printf("min=%d,a[%d]\n",min,d_min);}运行结果:max=93,a[9]Min=3,a[1]思考:数组a[i]中i的变化意味着什么?8-3 编写程序,从键盘读入50个数存放于一数组中,求出该数组中最大值、最小值及所在位置。
解:#include "stdio.h"void main(){float a[50],max,min;int i,d_max,d_min;for(i=0;i<50;i++)scanf("%f",&a[i]);max=min=a[0];d_max=d_min=0;for(i=1;i<50;i++){if(a[i]>max) {max=a[i];d_max=i;}if(a[i]<min) {min=a[i];d_min=i;}}printf("max=%d,a[%d]\n",max,d_max);printf("min=%d,a[%d]\n",min,d_min);}思考:此题中不用数组也可以处理吗?如果可以,区别之处在哪里?8-4将存放于上题数组中的50个数分别按升序,降序排序。
(word完整版)C语言程序设计课后习题1-8参考答案
C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。
运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。
数据运算包括算术运算和逻辑运算。
控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。
输出设备正好与输入设备相反,是用来输出结果的部件。
2、简述计算机的工作原理。
答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。
整个过程由控制器进行控制。
3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。
系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。
这类软件一般与具体应用无关,是在系统一级上提供的服务。
系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。
另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。
在操作系统的基础上运行。
4、什么叫软件?说明软件与硬件之间的相互关系。
答:软件是指计算机程序及有关程序的技术文档资料。
两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。
在不太严格的情况下,认为程序就是软件。
硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。
c语言习题册1-8章答案
文档供参考,可复制、编制,期待您的好评与关注!第一章:(标记红色的为错误答案,参考老师评讲的答案)一、选择题:1-5、CCCDB6-9、ADDA二、填空题:1、函数一个函数函数2、/* */3、关键字预定义标识符用户标识符4、b被赋值为10,或将10赋值给b5、scanf() printf()第二章一、选择题:1-5、ACCAD6-10、DBBD B11-15、D CCBC16-20、CD B BB21-25、ABCCC26-30、ACABD31-34、CA A C二、填空1、123.432、++、%、<、=3、20<x&&x<30||x<-104、125、76、21第三章一选择题:1-5、D ADBB6-10、DBAAD11-15、CACCA16-19、BADC二、填空题:1、10241e2、D3、PB4、35、无答案第四章一、选择题:1-5、DBABA6-10、DDDCC11-15、BDCCB16-20、AABAA文档供参考,可复制、编制,期待您的好评与关注!二填空题:1、20<x&&x<30||x<-1002、33、14、45995、20 10 16、99117、4,8,08、39、20,010、x<10 x>=111、10 12 2第五章一选择题:1-5:AA B CA6-10:CCAAA11-15:DDCBA16-20:BDABA21-23:D AC二、填空题1、12、死循环3、64、25、3456、07、此题程序有误:应为:main(){int i,j;for(i=0;i<=100;i++){if(i%3!=0||i%10!=4)continue;printf(“%d ”,i);}}8、无结果,运行错误9、110、i-- n第六章一、选择题:1-5:BDDDB6-10:DCAC(第八题有误,数组越界)11-15:ABBBA16-20:CAAB(第十九题,无答案)二、填空题:1、24文档供参考,可复制、编制,期待您的好评与关注!2、1 1 13、304、1 0 04 5 07 8 95、926、m=82,j=67、358、89、2410、&a[i],s+=a[i]第七章一、选择题:1-5:ACABC6-10:DB AC D11-15:CAABA16-20:DC C CD21-23:BCD二、填空题:1、k *k2、553、c=*a;*a=*b;*b=c;4、05、76、8 47、7 7 7 7 6 5 4 3 2 18、7 139、610、573B温馨提示-专业文档供参考,请仔细阅读后下载,最好找专业人士审核后使用!。
第八次
第八次上机一、又是任意阶矩阵乘法1041这一次要求用动态分配内存的方式实现任意阶整数矩阵的乘法。
矩阵乘法也要求用函数实现。
●输入格式第一行是测试数据的组数T。
对于每一组数据,第一行有三个用空格隔开的整数a、b、c,表示输入的两个矩阵阶数分别为a*b和b*c。
每个元素数据的范围为[-1000,1000]。
●输出格式每组数据对应有一个矩阵输出,每个数后输出一个空格。
每组结果之后输出一个空行。
●输入样例12 3 21 2 32 3 43 44 51 0●输出样例14 1422 23二、Flagstone 1049In the Qingshuihe Campus of UESTC, the most annoy problem to students are the flagstone path on the lawn. The designer seems so stupid that the flagstone path often make students step in the gap. Now a perfect step is wanted in order to not step in any gaps and step on every flagstone. The step length is required to be constant while the length of the flagstone and gap are given different. The problem is asking you to tell the minimum length of the perfect step. To simplify the question, the foot is considered to be a point and the very beginning is the fore edge of the first flagstone, which also means the first flagstone has already been stepped on.●InputThe first line of the input contains one integer T, which indicate the number of test cases. In each test case, the first line contains an integer N(2<=N<=1e5), indicating the number of flagstone. Following N lines, and each line is the length of one flagstone. And the following N-1 lines are the length of the gaps. All data is integer. All the length will be a positive integer, and the sum of them will fit in a 32bit signed integer.●OutputOne line for each test case contains only one number indicating the answer. One real number indicating the perfect step length should be accurate to two digits after the radix point. If it is impossible to find out a perfect step, just output “impossible” !●Sample Input221020531020551000●Sample Output15.00impossible●Hint每个石板踏且仅踏一次.三、平面点排序平面上有n个点,坐标均为整数。
(完整版)C教材习题答案(1-8章)
main()
{
int score;
char ch;
printf("请输入一个百分制分数:");
scanf("%d",&score);
if(score>100 || score<0){
printf("非法输入!\n");
return 0;
}
switch(score/10) {
#include<math.h>
main(){
float s=0;
int i,j,n,t;
printf("请输入n的值:");
scanf("%d",&n);
for(i=1;i<=n;i++){
t=1;
for(j=1;j<=i;j++)
t*=j;
s+=1.0/t;
}
printf("%.2f\n",s);
}
2.输出100以内所有能被13和17整除的数。
#include<stdio.h>
main(){
int i;
for(i=1;i<=100;i++)
if(i%13==0 || i%17==0)
printf("%4d",i);
}
3整元换零钱问题。把5元兑换成1角,2角,5角的硬币,一共有多少种换法,编写求解此问题。
printf("5角:%d个\t2角:%d个\t1角:%d个\n",i,j,k);
n++;
c语言程序设计第五版课后答案谭浩强第八章课后答案
c语⾔程序设计第五版课后答案谭浩强第⼋章课后答案c语⾔程序设计第五版课后答案谭浩强习题答案第⼋章善于利⽤指针本章习题均要求使⽤指针⽅法处理。
1. 输⼊3个整数,要求按由⼩到⼤的顺序输出。
解题思路:先获取到三个变量的地址,然后获取三个数据,通过指针进⾏⽐较转换即可答案:#include <stdio.h>void swap(int *p_a, int *p_b){int temp = *p_a;*p_a = *p_b;*p_b = temp;}int main(){int a, b, c, *p_a = &a, *p_b = &b, *p_c = &c; // 获取每个变量空间的地址printf("Please enter three numbers:");scanf_s("%d%d%d", p_a, p_b, p_c);if (*p_a > *p_b) {swap(p_a, p_b);//通过指针进⾏指向空间内的数据交换}if (*p_a > *p_c) {swap(p_a, p_c);}if (*p_b > *p_c) {swap(p_b, p_c);}printf("%d %d %d\n", *p_a, *p_b, *p_c);system("pause");return 0;}2. 输⼊3个字符串,要求按由⼩到⼤的顺序输出。
解题思路:字符串的⽐较可以使⽤strcmp函数,返回值>0表⽰⼤于,返回值⼩于0表⽰⼩于,返回追等于0表⽰相同。
其他的⽐较排序思路与数字的排序交换没有区别,逐个进⾏⽐较先找出最⼤的,然后找出第⼆⼤的。
答案:#include <stdio.h>int main(){char str[3][32];char *p[3];printf("Please enter three strings:");for (int i = 0; i < 3; i++) {p[i] = str[i];scanf_s("%s", p[i], 32);//后边的数字限制缓冲区边界,防⽌缓冲区溢出访问越界}//让p[0]和p[1]/p[2]分别进⾏⽐较,找出最⼤的字符串,i+1之后,则让p[1]和p[2]进⾏⽐较,找出第⼆⼤//i循环总个数-1次,最后⼀个是不需要⽐较的for (int i = 0; i < 2; i++) {for (int j = i + 1; j < 3; j++) {if (strcmp(p[i], p[j]) > 0) {char *tmp = p[i]; p[i] = p[j]; p[j] = tmp;}}}printf("%s %s %s\n", p[0], p[1], p[2]);system("pause");return 0;}3. 输⼊10个整数,将其中最⼩的数与第⼀个数对换, 把最⼤的数与最后⼀个数对换。
C语言暑假作业
1.C程序设计的三种基本结构是:选择结构、循环结构和。
2.一个C语言程序的基本组成单位是。
3.一个C语言程序的执行起点是。
4.C语言标识符的第一个字符必须为下划线或者。
5.在C语言中,整型常量的书写形式包括:八进制、十进制和进制。
6.在C语言中,运算符的操作数必须是整型的是。
7.设int a=9,b=6,c;,执行语句c=a/b+0.8;后c的值是。
8.设int a;float b;char c;long d;double e;,则表达式a/c-b+d-e值的类型是。
9.设int x=7,y=3,则表达式x%y+x/y的值是。
10.设int i;float f=3.14;,执行i=(int)f;后,变量i的值是。
11.设float x=23.65;, 则执行语句printf("%d\n",(int)(x+0.5));后输出结果是。
12.设int j=5;,则执行语句j+=j-=j*j;后,变量j的值是。
13.设int a=2;,则执行a+=a*=15;后,变量a的值是。
14.在C语言中,优先级最低的运算符是。
15.设int a,b;,表达式a=2,b=5,b++,a+b的值是。
16.设int a,b,c;则执行a=(b=3,c=5,b=10);后变量a的值是。
17.设int a=7,b=8;则printf("%d,%d\n",(a+b,a),(b,a+b));的输出结果是。
18.设int a=12;,语句printf("%d\n",(a/3,a%3,a/10>0));的输出结果是。
19.若定义了int a=1;,则执行printf("%d\n",((a=a+4,a+5),a+6));语句的输出结果是。
20.设int x=2, y=1;则表达式x+++y的值是。
21.设int x=14;,则表达式x++%-5的值为。
C-作业(八次)
}
printf("1!+2!+...+20!=%22.15e\n",s);
printf("password is %c%c%c%c%c\n",c1,c2,c3,c4,c5);
return 0;
}
第三次作业
3.写出下面各逻辑表达式的值。设a=3,b=4,c=5。
(1)a+b>c&&b==c0
(2)a||b+c&&b-c1
(3)!(a>b)&&!c||1 1
(4)!(x=a)&&(y=b)&&0 0
max=b;
if(max<c)
max=c;
printf("The largest number is %d\n",max);
return 0;
}
第二次作业
1.假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。计算公式为p=(1+r)n,r为年增长率,n为年数,p为与现在相比的倍数。
break;
case 2:printf("%d,%d",ten,indiv);
printf("\n反序数字为:");
printf("%d%d\n",indiv,ten);
break;
case 1:printf("%d",indiv);
printf("\n反序数字为:");
printf("%d\n",indiv);
C语言第8次作业
C语⾔第8次作业1、若K为整型,以下while循环执⾏( )次K=0 while (K=0) K=K-1A.执⾏10次B.⽆限循环C.⼀次也不执⾏D.执⾏⼀次学⽣答案: C参考答案: C2、当执⾏以下程序段时{y=-1 ;do {y--;} while(--y);printf("%d\n",y--);}A.循环体将执⾏⼀次B.循环体将执⾏两次C.循环体将执⾏⽆限次D.系统将提⽰有语法错误学⽣答案: B参考答案: C3、执⾏以下程序后,输出的结果是main(){ int y=10;do{y--;} while(--y);printf("%d\n",y--);}A.-1B.1C.8D.0学⽣答案: D参考答案: D4、读程序:while (num < =2){ num++; printf("%d",num);}}上⾯程序的输出结果是______A.1B.2 2C.1 2 3学⽣答案:参考答案: C5、假定a和b为int型变量,则执⾏以下语句后b的值为a=1; b=10; do{ b=b-a; a++; }while (b-- > 0);A.-3B.-2C.-1D.-4学⽣答案: C参考答案: D6、以下程序的输出结果是main( ){int i;for(i='A';i < 'I';i++,i++) printf("%c",i+32);printf(" \n");}A.编译不通过,⽆输出B.acegC.acegiD.abcdefghi学⽣答案: C参考答案: B7、以下循环体的执⾏次数是main(){int i,j;}A.3B.2C.1D.0学⽣答案: C参考答案: C8、设K为整形,则下⾯的while循环执⾏( )次k=2;while(k==0) {printf("%d",k);k--;}printf("\n");A.⽆限次B.0次C.1次D.2次学⽣答案: C参考答案: B9、运⾏以下程序后,如果从键盘上输⼊china#<回车>,则输出结果为main( ) { int v1=0,v2=0;char ch;while((ch=getchar( ))!='#')switch(ch){ case 'a':case 'h':default: v1++;case '0': v2++}printf(A.2,5B.2,0C.5,0D.5,5学⽣答案: B参考答案: Dmain(){int a=1,b=10;do{b-=a;a++;}while(b-- < 0);printf("a=%d,b=%d\n",a,b);}A.a=3,b=11B.a=2,b=8C.a=1,b=-1D.a=4,b=9学⽣答案: C参考答案: B11、以下程序的输出结果是main( ){ int i;for(i='A';i < 'I';i++,i++) printf("%c",i+32);printf(" \n");}A.编译不通过,⽆输出B.acegC.acegiD.abcdefghi学⽣答案: C参考答案: B12、以下程序的输出结果是main( ){ int n=4;while(n--)printf("%d ",--n);}A.2 0B.3 1C.3 2 1D.2 1 013、以下循环体的执⾏次数是main(){int i,j;for(i=0,j=1; i < = j+1; i+=2, j--) printf("%d \n",i); }A.3B.2C.1D.0学⽣答案: B参考答案: C14、设有程序段int k=10;while(k=0) k=k-1;则下⾯描述中正确的是________A.while循环执⾏10次B.循环是⽆限循环C.循环体语句⼀次也不执⾏D.循环体语句执⾏⼀次学⽣答案: B参考答案: C15、请读程序:#includemain(){float x,y,z;scanf("%f%f",&x,&y);z=x/y;while(1){ if(fabs(z)>1.0){x=y; y=z; z=x/y;}printf("%f\n",y);}若运⾏时从键盘上输⼊3.6 2.4(表⽰回车),则输出结果是A.1.500000B.1.600000C.2.000000D.2.400000学⽣答案: D参考答案: B16、有以下程序main(){ int x,i;for(i=1;i < = 50;i++){ x=i;if(x%2==0)if(x%3==0)if(x%7==0)printf("%d",i);}}输出结果是A.28B.27C.42D.41学⽣答案: C参考答案: C17、运⾏以下程序后,如果从键盘上输⼊china#<回车>,则输出结果为main( ) { int v1=0,v2=0;char ch;while((ch=getchar( ))!='#')switch(ch){ case 'a':case '0': v2++}printf(A.2,5B.2,0C.5,0D.5,5学⽣答案: B参考答案: D18、有如下程序main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执⾏结果是A.321B.23C.不输出任何内容D.陷⼊死循环学⽣答案: B参考答案: B19、以下程序的输出结果是#include < stdio.h >#include < string.h >main(){ char b1[8]="abcdefg",b2[8],*pb=b1+3; while (--pb > = b1) strcpy(b2,pb); printf("%d\n",strlen(b2)); }A.8B.3C.1D.720、以下程序的输出结果是main(){ int i, k, a[10], p[3];k=5;for (i=0;i<10;i++) a[i ]=i;for (i=0;i<3;i++) p[i ]=a[i *(i+1)];for (i=0;i<3;i++) k+=p[i] *2;printf("%d\n",k);}A.20B.21C.22D.23学⽣答案: C参考答案: B21、C语⾔中 while 和 do-while 循环的主要区别是A.do-while 的循环体⾄少⽆条件执⾏⼀次B.while的循环控制条件⽐ do-while的循环控制条件更严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句学⽣答案: C参考答案: A22、下⾯程序的功能是把316表⽰为两个加数的和,使两个加数分别能被13和11整除,请选择填空。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八次课作业请预习:函数请课后首先完成p743.c(逆序)、p750.c(删除“*”)、p220.c(统计字母数字空格等)、p221.c(回文判断)、p827.c (最长字符串)、p828.c(最大字符串)习题8-1题码:章节:数组考查点:字符数组的处理,循环和判断难度:2编写一程序P220.C实现以下功能从键盘读入一行字符(约定:字符数≤127字节),统计及输出其中的字母、数字、空格和其他符号的个数。
编程可用素材:printf("Please input string:")...、printf("\nzimu=...,shuzi=...,kongge=...,qita=..."...。
程序的运行效果应类似地如图1所示,图1中的gfaskl45623cvsac,53dwafl faf32535是从键盘输入的内容。
图1 程序运行效果示例习题8-2题码:章节:数组考查点:字符数组的处理,循环和判断难度:2编写一程序p219.C实现以下功能从键盘读入一行字符(约定:字符数≤127字节),将其中的数字字符以及这些数字字符的数量在屏幕上显示,注意:要求先显示这些数字字符的数量。
编程可用素材:printf("Please input string:")...、printf("\nshuzigeshuwei:...、printf("\nshuziwei:...。
程序的运行效果应类似地如图1所示,图1中的gfaskl45623cvsac,53dwafl faf32535as3bf0是从键盘输入的内容。
图1 程序运行效果示例习题8-3题码:章节:数组考查点:字符数组的处理,循环和判断难度:1编写一程序p221.C实现以下功能从键盘读入一个字符串(约定:字符数≤127字节),检查该字符串是否是回文。
所谓回文即正向与反向的拼写都一样,例如:adgda。
编程可用素材:printf("Please input string:")...、printf("\n... shihui wen."...、 printf("\n... bushihui wen."...。
程序的运行效果应类似地如图1和图2所示,图1中的asdfghjhgfdsa和图2中的asdfghjhgfdsaa是从键盘输入的内容。
图1 程序运行效果示例(回文) 图2 程序运行效果示例(非回文)习题8-4题码:章节:数组考查点:字符数组的处理,循环和判断难度:2编写一程序P222.C实现以下功能从键盘上读入一行字符(约定:字符数≤127字节),按以下方法将其加密变换:A->Za->zB->Yb->yC->Xc->x…………Z->Az->a即字母A变成Z、字母B变成Y...,非字母字符不变。
最后在屏幕上先显示这一行字符的长度,再显示生成的密文。
编程可用素材:printf("Please input string:")...、printf("\nzi fu chuan chang du:...、printf("\nmi wen:...。
程序的运行效果应类似地如图1所示,图1中的sfasfk,lmw4tywerysfcvasgewr xfasftg是从键盘输入的内容。
图1 程序运行效果示例习题8-5题码:章节:数组考查点:字符数组的处理,循环和判断难度:2编写一程序p311.C实现以下功能①从键盘上先后读入两个字符串,假定存储在字符数组s1和s2中。
注意,这两个字符串最长均可达到127个字符、最短均可为0个字符。
②将字符串s2插入字符串s1中,插入方法为:s2的第i个字符插入到原s1的第i个字符后,如果s2比s1(假定s1的长度为L1)长,则s2的第L1个字符开始到s2结尾的所有字符按在s2中的顺序放在新生成的s1后。
提示,合并时可使用中间数组。
例如:s1输入为"123456789",S2输入为"abcdefghijk",则输出的s1为:1a2b3c4d5e6f7g8h9ijk③在屏幕上输出新生成的s1。
编程可用素材:printf("Pleaseinputstring1:")...、printf("Pleaseinputstring2:")...、printf("\nstring1:...\n"...。
程序的运行效果应类似地如图1所示,其中的123456789和abcdefghijk是从键盘输入的内容。
图1 程序运行效果示例习题8-6题码:章节:数组考查点:排序算法,二维字符数组及字符串处理函数的应用,难度:3 编写一程序p719.C实现以下功能从键盘上输入5个字符串(约定:每个字符串中字符数≤80字节),对其进行升序排序并输出。
编程可用素材:printf(“Input 5 strings:\n”)...、printf(“---------------------------\n”)...。
程序的运行效果应类似地如图1所示,图1中的hellomyfriendAre you ready?help!是从键盘输入的内容。
图1 程序运行效果示例习题8-7题码:章节:程序的控制结构考查点:基本输入/输出、if语句的使用、switch语句的使用难度:2编写一程序p705.C实现以下功能从键盘输入星期几的第一个字母(接收字符请用getchar()),由程序判断是星期几,并显示其对应的英文单词,如果第一个字母一样,则继续判断第二个字母。
星期的第一个字母都为大写。
如果输入的字符不能构成星期的英文单词,则输出“data error”。
程序可重复判断,直至输入字母‘Y’。
注:星期一至星期日对应的单词为Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday。
编程可用素材:printf("Please input the letter of someday: ")...、 printf("Monday\n")...、printf("Wednesday\n")...、printf("Friday\n")...、 printf("Tuesday\n")...、printf("Thrusday\n")...、printf("Saturday\n")...、printf("Sunday\n")...、printf("data error\n")...。
程序的运行效果应类似地如图1所示,图1中的WSajTxMTTuY是从键盘输入的内容。
图1 程序运行效果示例提示:方法一、该题可以用字符数组存放字符串,但只能使用getchar()函数一个一个字符循环输入存入内存方法二、1、该题可以不使用字符数组存放字符串,而是让程序每次从键盘得到一个字符进行判断,若判断条件需要读入第二个字符则读入第二个字符,否则是不会读入第二个字符的,也就是程序最多读入两个字符。
2、对Monday, Wednesday, Friday的判断只需一个字符即可,而对Tuesday,Thursday,Saturday,Sunday的判断需要两个字符,例如:若当前读到的字符为T,则应再读入一个字符,并判断是否是u,如果是,则输出Tuesday,若判断结果是h,则输出Thursday,若不是则应将第二个字符通过调用函数ungetc(ch, stdin); 还给键盘习题8-8(选作)题码:章节:字符串处理考查点:难度:2编写一程序p771.C实现以下功能编程在一个已知的字符串(约定:字符数≤127字节)中查找最长单词,输出最长单词的长度。
注意事项:(1)只考虑输入的字符串中仅含空格和其它可见字符,仅用空格用来分隔不同单词。
(2)字符串中可能只有1个单词。
(3)字符串中可能1个单词都没有,此时最长单词的长度为0。
(4)编程可用素材:printf("please input a string:\n")...、printf("\nmax_length of the string is: %d\n"...。
程序的运行效果应类似地如图1所示,图1中的hello welcome to chengdu-CUIT是从键盘输入的内容。
图1 程序运行效果示例提示:思路:对字符串中的单词一个个计算长度,找出其中最长单词的长度。
具体算法:1)、逐个判断字符串中的字符,若当前字符不是空格,则当前单词的长度len++,并同时判断当前单词是否结束。
2)、当前单词结束判断:当前字符不是空格,后一字符是空格或是’\0’,则当前单词结束3)、比较max(保存目前找到的最长单词长度)和len的大小,若max<len,则max=len1、定义变量:charstr[128];int i, max = 0,len = 0;数组str存放原始字符串,max存放到目前为止找到的最长单词长度,len计算当前单词长度, i控制数组str的下标2、中心段程序:for (i = 0; str[i] != '\0'; i++) //沿字符串逐个字符进行判断{if (str[i] != ' ') //若当前字符不是空格,即是当前单词的一部分,len++{len++;if (str[i+1] == ' ' || str[i+1] == '\0' )//若后一字符是空格或'\0',则当前单词结束,{if (max<len)//比较max和len的大小{max = len;}}}}。