终版华中科技大学标准C语言程序设计及应用习题答案.doc

合集下载

标准C语言程序设计和应用——华中科技大学出版社第三章课后题Word版

标准C语言程序设计和应用——华中科技大学出版社第三章课后题Word版

1.比大小#include<stdio.h>main(){int a,b;int max;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&b);max=a>b?a:b;printf("The bigger one is %d",max); }2.三个整数比大小#include<stdio.h>main(){int a,b,c;int max,mid;printf("Please enter 3 numbers:\n");scanf("%d%d%d",&a,&b,&c);mid=a>b?a:b;max=mid>c?mid:c;printf("The biggest one is %d",max); }3.累加#include<stdio.h>main(){int i;int sum=0;for(i=1;i<101;i++){sum+=i;}printf("The answer is %d",sum);}4.计算通项公式中的每一项#include<stdio.h>main(){int an_2=10,an_1=-3;int an;int i,n;printf("请输入需要的项的个数:\n");scanf("%d",&n);printf("第1项:10\n");printf("第2项:-3\n");if(n<=2){printf("Error!");}else{for(i=3;i<=n;i++){an=3*an_1+an_2;an_2=an_1;an_1=an;printf("第%d项:\t%d\n",i,an);}}}5.判断奇偶数:#include<stdio.h>main(){int a;printf("Please enter a number:\n");scanf("%d",&a);if(a%2==0){printf("%d is an Even number!",a);}else{printf("%d is an Odd number!",a);}}6.求前n项和#include<stdio.h>main(){int an=8,bn=1,sum=0;int n;int i;printf("请输入你需要多少项的和:\n");scanf("%d",&n);for(i=1;i<=n;i++){printf("第%d项是%d\n",i,an);sum+=an;bn+=3;an+=bn;}printf("\n前%d项的和为%d",n,sum);}7.求分段函数的解:#include<stdio.h>main(){float x,y;printf("Please enter a number:\n");scanf("%f",&x);if(x<1.0){y=x;}else if((x>=1)&&(x<10)){y=2*x-1;}else{y=3*x-11;}printf("y=%.2f",y);}8.给出一个不多于5位的数,求出其位数,并逆序打印:#include<stdio.h>main(){int in,out,n;int wei=1;int a,b,c,d,e;int i;printf("Please enter a number:\n");scanf("%d",&in);n=in;if(a<99999){for(i=0;i<5;i++){n/=10;if(n>0){wei++;}}printf("The number has %d digit\n",wei);e=in%10;switch(wei){case 1:out=in;break;case 2:out=10*e+in/10;break;case 3:c=in/100;b=(in-c*100)/10;out=100*e+10*b+c;break;case 4:b=in/1000;c=(in-b*1000)/100;d=(in-b*1000-c*100)/10;out=1000*e+100*d+10*c+b;break;case 5:a=in/10000;b=(in-a*10000)/1000;c=(in-a*10000-b*1000)/100;d=(in-a*10000-b*1000-c*100)/10;out=10000*e+1000*d+100*c+10*b+a;break;}if(wei<6){printf("%d in reverse order is %d\n",in,out);}else{printf("Error!");}}}9.产生随机数并猜测#include<stdio.h>#include<time.h>#include <stdlib.h>main(){int a,answer;int i;srand((unsigned)time(NULL));a= rand()%100;for(i=0;i<20;i++){printf("Please enter a number from 0 to 100:\n");scanf("%d",&answer);if(answer>a){printf("Bigger!\n");}else if(answer<a){printf("Smaller!\n");}else{printf("You are right!") ;continue;}}}10.计算能被3整除的数:#include<stdio.h>main(){int i;for(i=1;i<1000;i++){if(i%3==0){printf("%d\t",i);}if(i%15==0){printf("能被3和5同时整除的数有:%d\n",i);}}}11:输入两个整数,求出它们的最大公约数和最小公倍数#include<stdio.h>main(){int a,b;int i;int min,max;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&b);for(i=a<b?a:b;i>0;i--){if((a%i==0)&&(b%i==0)){max=i;printf("The Greatest common divisor is %d\n",max);break;}}for(i=a>b?a:b;i<a*b;i++){if((i%a==0)&&(i%b==0)){min=i;printf("The least common multiple number is %d\n",min);break;}}}12输入一个整数,求出它包含多少个2的因子#include<stdio.h>main(){int a;int count=0;int i;printf("Please enter a number:\n");scanf("%d",&a);for(i=1;i<=a;i++){if(a%2==0){count++;a=a/2;}}printf("The number have %d 2",count);}13.计算阶乘#include<stdio.h>main(){int i;int j;long int t=1;printf("1\n");for(i=1;i<10;i++){t*=i+1;printf("%d\n",t);}}14.猴子吃桃问题#include<stdio.h>main(){int a=1;int aday;int i,j;for(i=1;i<10;i++){a=(a+1)*2;}printf("There sum is %d\n",a);for(j=1;j<10;j++){aday=a/2+1;a-=aday;}printf("%d\n",a);}15圆锥体积计算#include<stdio.h>#define PI 3.141592654main(){float r,h,v;printf("Please enter 2 numbers:\n");scanf("%f%f",&r,&h);if((r>0)&&(h>0)){v=1/(3*PI*r*r*h);printf("The Volume is %.6f",v);}else{printf("Error!");}}16求s=a+aa+aaa+aaaa````````(n个a)#include<stdio.h>main(){int a,n;int i;long int sum=0;printf("Please enter 2 numbers:\n");scanf("%d%d",&a,&n);int m=a;for(i=0;i<n;i++){sum+=a;a=a*10+m;printf("%d\t%d\n",a,sum);}printf("The answer is %ld",sum);}17根据数字输出对应星期#include<stdio.h>main(){int a;printf("Please enter a number:\n");scanf("%d",&a);if((a>=0)&&(a<=6)){switch(a){case 0:printf("Sunday");break;case 1:printf("Monday");break;case 2:printf("Tuesday");break;case 3:printf("Wedsday");break;case 4:printf("Thursday");break;case 5:printf("Friday");break;case 6:printf("Saturday");break;}}else{printf("Error!");}}18.计算幂函数的泰勒展开式:e^x=1+x+x2/2!``````` #include<stdio.h>main(){int i;float n=1;float m;float s=1;printf("Please enter a number:\n");scanf("%f",&m);float a=m;for(i=1;m/n>1e-6;i++){s+=m/n;m*=a;n*=(i+1);}printf("e^%.0f=%.6f\n",a,s);}19.用迭代法求平方根#include<stdio.h>#include<math.h>int main(){int a;float b,c;printf("Please enter a number:\n");scanf("%d",&a);b=1,c=0;for(;fabs(b-c)>1e-5;){c=1.0/2*(b+a*1.0/b);b=1.0/2*(c+a*1.0/c);}printf("%d的平方跟是:%lf",a,b);return 0;}(注:可编辑下载,若有不当之处,请指正,谢谢!)。

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析

c语言《程序设计基础》课后习题参考答案与解析《程序设计基础》习题参考答案与部分解析第1章 C 语言概述一、填空a) C源程序的基本单位是函数。

b) 一个C程序中至少应包括一个 main函数。

c) 在C语言中,输出操作是有库函数 printf( )函数完成。

二、单选题1、A2、C3、B解析:第1题答案:A 。

因为一个C程序总是从main函数开始执行的,而不论main函数在程序中的位置。

且到main函数结束。

第2题答案:C 。

因为 main函数没有限制必须位于程序的最前面。

C程序书写自由,一行内可写几个语句。

在对一个C 程序进行编译的过程中,无法检查注释当中的拼写错误。

不过C语言本身并没有输入输出语句,输入输出是由函数完成的。

第3题答案:B。

因为一个C语言程序是由若干个函数组成的。

但至少包含一个main 函数,且main函数的位置不限。

三、编程题1、编写一个输出“Welcome to C!”信息的小程序。

解:程序如下#include “stdio.h”main( ){1printf(“Welcome to C!”) ;}2、已知三角形的三边长分别为3,4,5,试用海轮公式编程求其面积。

海伦公式为:S?= ,其中s= (a+b+s)/2 ;解:程序如下#include “math.h”#include “stdio.h”main( ){int a , b , c ; /* a ,b,c 3个整型变量表示三角形的3条边。

*/float s ,s1 ; /* s1作为面积变量,s 作为中间变量是都应该是实形*/a=3 ; b= 4; c=5 ;s= (a+b+c)/2.0 ;s1= sqrt(s*(s-a)*(s-b)*(s-c)); /* sqrt函数完成开平方根功能。

*/printf(“area=%f\n”,s1);}2第2章程序设计基础知识一、单选题1、C2、A3、C4、A5、C6、C7、D8、C9、D 10、A 11、D 12、A 13、C 14、C 15、B A 16、B 17 D解析:1. 答案:C。

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语言程序设计练习题(含程序及参考答案)

(完整版)C语⾔程序设计练习题(含程序及参考答案)C语⾔练习题(所提供的源程序均采⽤⾃定义函数⽅式解决,如不采⽤函数⽅式,也可直接在main函数中借鉴该思想编程,因时间有限,所有程序未能⼀⼀验证,仅供参考使⽤)1、定义⼀个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三⾓形函数返回3,若能构成等腰三⾓形函数返回2,若能构成⼀般三⾓形函数返回1,若不能构成三⾓形函数返回0。

#includeint fun(int a,int b,int c){if(a+b>c && b+c>a && a+c>b){if(a==b && b==c )return 3;else if(a==b||b==c||a==c)return 2;else return 1;}else return 0;}void main(){int a,b,c,shape;printf("\nInput a,b,c: ");scanf("%d%d%d",&a,&b,&c);printf("\na=%d, b=%d, c=%d\n",a,b,c);shape =fun(a,b,c);printf("\n\nThe shape : %d\n",shape);}2、编写⼀个程序,将两个变量的值交换, 例如变量a中的值原为 3,b中的值原为8,程序运⾏后 a 中的值为8,b中的值为3。

#includevoid fun(int *x,int *y){int t;t=*x;*x=*y;*y=t}void main(){int a=3,b=8;printf("%d %d\n",a,b);fun(&a,b);printf("%d %d\n",a,b);}3、从键盘输⼊3个数,将最⼤值放在变量a中,最⼩值放在变量c中。

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案

c语言程序设计课后习题及答案C语言程序设计是计算机科学与技术专业的核心课程之一,它不仅教授了编程语言的基本知识,还培养了学生的逻辑思维能力和问题解决能力。

课后习题是巩固课堂学习内容的重要手段,以下是一些C语言程序设计的典型课后习题及答案。

习题1:基本数据类型编写一个程序,输入一个整数和一个浮点数,然后输出它们的和。

```c#include <stdio.h>int main() {int a;float b, sum;printf("请输入一个整数:");scanf("%d", &a);printf("请输入一个浮点数:");scanf("%f", &b);sum = a + b;printf("它们的和是:%f\n", sum);return 0;}```习题2:条件语句编写一个程序,根据输入的成绩判断学生的等级。

```c#include <stdio.h>int main() {float score;printf("请输入学生的成绩:");scanf("%f", &score);if (score >= 90) {printf("等级:A\n");} else if (score >= 80) {printf("等级:B\n");} else if (score >= 70) {printf("等级:C\n");} else if (score >= 60) {printf("等级:D\n");} else {printf("等级:F\n");}return 0;}```习题3:循环结构编写一个程序,计算1到100的整数之和。

C语言实验指导书(第2版)-华中科技大学

C语言实验指导书(第2版)-华中科技大学

C语言程序设计实验指导书(第二版)编著曹计昌卢萍李开张茂元华中科技大学计算机学院2008年3月目录编写说明 (4)实验1 Turbo C 2.0集成开发环境及简单程序调试 (5)一、实验目的 (5)二、实验任务 (5)三.操作指导(结合第1题) (7)实验2 表达式和标准输入与输出 (17)一、实验目的 (17)二、实验题目及要求 (17)1、源程序改错题 (17)2、源程序修改替换题 (18)3、编程设计题 (18)实验3 流程控制实验 (19)一、实验目的 (19)二、实验题目及要求 (19)1.源程序改错题 (19)2.源程序修改替换题 (19)3.编程设计题 (19)4. 选做题 (20)实验4 函数与程序结构实验 (21)一、实验目的 (21)二、实验题目及要求 (21)1.源程序改错题 (21)2.源程序修改替换题 (21)3.跟踪调试题 (22)4.编程设计题 (22)5.选做题 (23)实验5 编译预处理实验 (24)一、实验目的 (24)二、实验题目及要求 (24)1.源程序改错题 (24)2.源程序修改替换题 (24)3.跟踪调试题 (25)4.编程设计题 (26)实验6 标准库及用户自定义库实验 (27)一、实验目的 (27)二、实验题目及要求 (27)1.编程设计题 (27)2.选做题 (28)实验7 数组实验 (29)一、实验目的 (29)二、实验题目及要求 (29)1.源程序改错题 (29)2.源程序完善、修改、替换题 (29)3.跟踪调试题 (30)4.编程设计题 (31)5.选做题 (31)实验8 指针实验 (32)一、实验目的 (32)二、实验题目及要求 (32)1.源程序改错题 (32)2.源程序完善、修改、替换题 (32)3.跟踪调试题 (33)4.编程设计题 (34)5.选做题 (34)实验9 结构与联合实验 (35)一、实验目的 (35)二、实验题目及要求 (35)1.表达式求值的程序验证题 (35)2.源程序修改替换题 (35)3.编程设计题 (37)4.选做题 (37)实验10 文件实验 (38)一、实验目的 (38)二、实验题目及要求 (38)1.文件类型的程序验证题 (38)2.源程序修改替换题 (39)3.编程设计题 (39)编写说明本实验指导书是根据2008年出版发行的《C语言程序设计》教材编写。

C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1-8参考答案C语言程序设计课后习题1-8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。

数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的。

存储器是计算机中具有记忆能力的部件,用来存放程序和数据。

输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。

整个过程由控制器进行控制。

3、计算机软件系统分为哪几类答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。

这类软件一般与具体应用无关,是在系统一级上提供的服务。

系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。

另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

应用程序是指某特定领域中的某种具体应用,供最终用户使用的软件,它必须在操作系统的基础上运行。

4、什么叫软件说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。

两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。

在不太严格的情况下,认为程序就是软件。

硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作。

在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。

C语言程序设计课后习题参考答案

C语言程序设计课后习题参考答案
【习题2-22】:x>-5&&x<5
x>5||x<-5
四、编写程序题
【习题2-23】
main()
{
float r,h,C1,Sa,Sb,Va,Vb;
scanf("%f,%f",&r,&h);
C1=2*3.14*r;
Sa=3.14*r*r;
Sb=4*Sa;
Va=4*3.14*r*r*r/3;
Vb=Sa*h;
表达式不是独立存在的,它存在于其他表达式、语句、函数参数里,表达式后面加上一个分号,就变成表达式语句,如
i=i+1(是表达式,不是语句)
i=i+l;(是语句)
表达式能构成语句是C语言的一个特色。其实“函数调用语句”也是属于表达式语句,因为函数调用也属于表达式的一种,只是为了便于理解和使用,我们把“函数调用语句”和“表达式语句”分开来说明。由于C程序中大多数语句是表达式语句(包括函数调用语句),所以有人把C语言称作“表达式语言”。
三、
【习题3-12】~【习题3-19】:如图3-12至图3-19所示。
3-123-133-14
其中的符号“→”表示“倒给”,例如“A→C”“将A瓶中的液体倒给C瓶”。
3-153-163-17
3-183-19
四、编写程序题
【习题3-20】:
#include <stdio.h>
main()
{int x,y;
bon4=bon2+200000*0.05; /*利润为40万元时的奖金*/
bon6=bon4+200000*0.03; /*利润为60万元时的奖金*/
bon10=bon6+400000*0.015; /*利润为100万元时的奖金*/

c语言设计与应用考试题目及答案

c语言设计与应用考试题目及答案

c语言设计与应用考试题目及答案一、选择题(每题2分,共20分)1. 在C语言中,用于定义字符常量的是()。

A. 单引号B. 双引号C. 尖括号D. 花括号答案:A2. 下列哪个关键字用于定义一个结构体?()A. structB. unionC. enumD. typedef答案:A3. 在C语言中,用于定义一个函数的关键字是()。

A. functionB. defC. defineD. void答案:A4. 以下哪个选项不是C语言中的控制语句?()A. ifB. switchC. whileD. forE. case答案:E5. 在C语言中,以下哪个运算符用于连接字符串?()A. +B. %C. &&D. ||答案:A6. 下列哪个函数用于将字符串转换为浮点数?()A. atoi()B. atof()C. itoa()D. sprintf()答案:B7. C语言中,用于输入输出的库函数是()。

A. math.hB. stdio.hC. string.hD. time.h答案:B8. 在C语言中,用于定义一个指针的关键字是()。

A. pointerB. ptrC. refD. *答案:D9. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. _variable2D. variable$2答案:C10. 在C语言中,用于定义一个数组的语法是()。

A. int array[10];B. int [10] array;C. int array=10;D. int array;答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个整型变量占用的字节数是______。

答案:4(或根据实际情况填写)2. C语言中,定义一个全局变量的关键字是______。

答案:extern3. 在C语言中,用于声明一个函数的关键字是______。

答案:int(或其他返回类型)4. C语言中,用于计算两个数的和的运算符是______。

C语言程序设计课后习题参考答案

C语言程序设计课后习题参考答案

《C语言程序设计》课后习题参考答案(总23页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--高等院校计算机基础教育规划教材《C++程序设计》课后习题参考答案――武汉大学出版社习题1参考答案一、选择题1. A2. D二、填空题1. BASIC、FORTRAN、AL_GOL60和COBOL2. 83. 关键字4. 编辑、编译、链接和运行三、简答题1.答:(1)C语言具有结构化的控制语句。

C语言提供了结构化程序所必需的基本控制语句,实现了对逻辑流的有效控制。

(2)C语言具有丰富的数据结构类型。

C语言除提供整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构、联合等。

C语言还提供了与地址密切相关的指针类型。

此外,用户还可以根据需要自定义数据类型。

(3)C语言具有丰富的运算符。

C语言提供了多达34种运算符,丰富的数据类型与丰富的运算符相结合,使C语言的表达力更具灵活性,同时也提高了执行效率。

(4)C语言简洁、紧凑,使用方便、灵活,程序书写自由,有9种控制语句。

(5)C语言既具有高级语言的功能,又具有低级语言的许多功能,通常被称为中级计算机语言。

它既是成功的系统描述语言,又是通用的程序设计语言。

(6)C语言与汇编语言相比,可移植性好。

(7)功能强大。

C语言具有低级语言的一些功能,所以,生成目标代码质量高,程序执行效率高。

现在许多系统软件都用C语言来描述,可以大大提高了编程效率。

2.答:运行一个C语言程序,一般需要经过如下几个步骤:①上机输入并编辑源程序;②编译源程序;③与库函数连接;④生成可执行目标程序;⑤运行目标程序。

3.答:(1)操作系统的设计与实现。

C语言是一种应用非常广泛的结构化高级程序设计语言,既适合编写应用软件,又适合编写系统软件。

(2)工业控制。

由于C语言具有简洁、灵活、代码效率高、能进行位操作等优点,C语言大量应用在单板机、单片机上,以及嵌入式领域等。

C语言程序设计习题集及参考答案

C语言程序设计习题集及参考答案

C语言程序设计习题集及参考答案C语言程序设计习题集及参考答案一、简介C语言是一种广泛使用的程序设计语言,它具有高效、灵活和易于维护的特点。

在学习C语言的过程中,通过练习题的方式可以帮助我们加深对语言的理解和应用。

本文将提供一些C语言的练习题,并给出参考答案,以帮助读者巩固所学知识。

二、习题集1、选择题(1) C语言中的基本数据类型包括哪些? A. int, float, char B. int, float, double C. char, float, double D. int, float, boolean (2) 下列哪个标识符是合法的C语言变量名? A. 123 B. _abc C. ab-c D. a bc(3) 下面哪个运算符的优先级最高? A. + B. && C. ++ D. !2、填空题(1) 在C语言中,整数的默认存储类型是____________。

(2) 写出计算a和b的最大值的表达式:max = a ______ b; (3) 写出判断一个数是否为偶数的表达式:num % ______ == 0。

3、编程题(1) 编写一个程序,输出1到10之间的所有奇数和偶数。

(2) 编写一个程序,判断一个整数是否为素数。

如果是素数,输出"Yes",否则输出"No"。

(3) 编写一个程序,输入一个字符串,然后将字符串中的所有字母转换为大写。

三、参考答案1、选择题(1) C语言中的基本数据类型包括int、float和char,因此答案为A。

(2) 在C语言中,合法的标识符不能以数字开头,不能包含特殊字符和空格,因此选项A和C是错误的。

选项B中使用下划线作为变量名的一部分是合法的,因此是正确的选项。

选项D中的a和bc之间没有分隔符,不符合标识符的命名规则,因此也是错误的。

因此,答案为B。

(3) 在C语言中,运算符的优先级从高到低依次为:()、[]、.&、!、++、--、~、* &、+ -、% 、/ %、<< >>、< > <= >= 、== !=、& ^ |、&& ||以及所有的逻辑运算符。

(word完整版)C语言程序设计课后习题1-8参考答案

(word完整版)C语言程序设计课后习题1-8参考答案

C语言程序设计课后习题1—8参考答案习题1参考答案一、简答题1、冯诺依曼计算机模型有哪几个基本组成部分?各部分的主要功能是什么?答:冯诺依曼计算机模型是由运算器、控制器、存储器、输入设备、输出设备五大功能部件组成的。

运算器又称算术逻辑部件,简称ALU,是计算机用来进行数据运算的部件。

数据运算包括算术运算和逻辑运算。

控制器是计算机的指挥系统,计算机就是在控制器的控制下有条不紊地协调工作的.存储器是计算机中具有记忆能力的部件,用来存放程序和数据.输入设备是用来输入程序和数据的部件。

输出设备正好与输入设备相反,是用来输出结果的部件。

2、简述计算机的工作原理。

答:计算机的工作原理可简单地概括为:各种各样的信息,通过输入设备,进入计算机的存储器,然后送到运算器,运算完毕把结果送到存储器存储,最后通过输出设备显示出来。

整个过程由控制器进行控制。

3、计算机软件系统分为哪几类?答:软件内容丰富,种类繁多,通常根据软件用途将其分为两大类:系统软件和应用软件。

系统软件是指管理、监控、维护计算机正常工作和供用户操作使用计算机的软件。

这类软件一般与具体应用无关,是在系统一级上提供的服务。

系统软件主要包括以下两类:一类是面向计算机本身的软件,如操作系统、诊断程序等。

另一类是面向用户的软件,如各种语言处理程序(像BC、VC等)、实用程序、字处理程序等。

在操作系统的基础上运行。

4、什么叫软件?说明软件与硬件之间的相互关系。

答:软件是指计算机程序及有关程序的技术文档资料。

两者中更为重要的是程序,它是计算机进行数据处理的指令集,也是计算机正常工作最重要的因素。

在不太严格的情况下,认为程序就是软件。

硬件与软件是相互依存的,软件依赖于硬件的物质条件,而硬件则需在软件支配下才能有效地工作.在现代,软件技术变得越来越重要,有了软件,用户面对的将不再是物理计算机,而是一台抽象的逻辑计算机,人们可以不必了解计算机本身,可以采用更加方便、更加有效地手段使用计算机。

(完整版)C语言程序设计习题集及答案

(完整版)C语言程序设计习题集及答案

C语言程序设计习题集东华理工大学2014.9基础知识一单项选择题(每题2分,共44分)1 以下叙述正确的是___。

A C程序基本组成单位是语句B C程序每一行只能写一个语句C 简单C语句必须以分号作为结束符D 注释语句可以嵌套2 一个C语言程序是从___开始执行的。

A 程序中第一个函数B 名为main的函数C 包含文件(头文件)的第一个函数D 程序中的第一个语句3 请选出合法的C语言赋值语句___。

A a=b=58B i++;C a=58,b=58D k=int(a+b);4 下面标识符中,合法的用户标识符是___。

A 1abcB includeC a-b-c123D char5 以下所列的C语言整形常量中,正确的是___。

A 0x10B 0976C 076LD 01ff6 C语言中下列运算符的操作数必须为整型的是___。

A %B ++C /D =7 设a和b均为int型变量,则执行以下语句后的输出为___。

int a=20; int b=3; printf("%d\n",a+=(b%=2));A 20B 21C 0D 238 已知int i;,则执行语句 i=2.6;后,i的值为___。

A 2B 3C 2.6D 不确定9 以下合法的字符常量为___。

A 'ab'B '\482'C '\'D '\xaf'10 若y为int型变量,则执行以下语句后,y的值是___。

y=8; y+=y-=y*y;A 64B –56C –112D –4811 以下合法的浮点型常量是___。

A e-3B 1.5e+2.4C 3.14e+2LD 3.14 e +512 设int数据占用两个字节,float数据占用四个字节,double数据占用8个字节,且已知float a=2;int b=3;则执行下列语句输出为___。

printf("%d",sizeof(a*b)+2/5);A 4B 8C 6D 713 设int型占2个字节,且int i=-2;,则语句printf("%u",i);的输出结果为___。

华中科技大学标准C语言程序设计及应用习题答案

华中科技大学标准C语言程序设计及应用习题答案

第二章一.选择题1.C2.B D 3。

A 4.A 5. D6。

C 7.D 8.C 9.A 10。

D 11。

B 12.D 13。

C 14.D 15.A 16。

B 17。

A 18。

B 100011 001111 二。

判断题1。

错2.错3.错4.错三。

填空题1. B 662。

n1=%d\nn2=%d\n3. 0四。

计算1(1)x|y = 0x002f(2)x^y = 0x0026(3)x&y = 0x0009;(4)~x+~y = 0xffc6(5)x<〈=3 0x0068(6)y〉〉=4 0x00022(1) 6(2)50(3) 1(4)–16(5) 1(6)203(1)0(2) 1(3) 1(4) 4(5)8(6) 14(1)12(2)0(3) 1(4)27(6) 6(7)24(8)27(9)–295(1)0(2) 1(3) 1(4)–3(5) 2五.程序分析题程序1b=20 a=3600程序2第三章一.填空题1.s=62.963。

(1)scanf(”%c",&c);(2) c-32 更好的答案:c-(’a’-’A’)2。

1main(){int a,b;printf(”please input a &b:");scanf("%d%d”,&a,&b);printf(”\nmax is %d\n",(a>b)?a:b);}2.2int max(int x,int y);main(){int a,b,c,max;printf(”please input a &b & c:”);scanf("%d%d%d",&a,&b,&c);max=a〉b?a:b;max=c〉max?c:max;printf("\nmax is %d\n”,max);}2.3{int i=0,sum=0;while(i〈=100){sum+=i;i++;}printf("1+2+3+.。

华中科技大学标准c语言程序设计上机试题、答案及报告格式

华中科技大学标准c语言程序设计上机试题、答案及报告格式

《标准C语言程序设计》上机报告实验七指针及函数结构体初步程序设计专业:班级:学号:姓名:完成日期:1一、实验目的1.进一步理解指针的概念,掌握指针变量间接地址访问的本质;2.掌握利用指向数组的指针变量表示一维数组元素及元素地址的方法;3.掌握利用指向二维数组的行指针变量表示二维数组元素及其地址的方法;4.掌握字符串的指针和指向字符串的指针变量;5.掌握指针数组和二级指针;6.熟悉通过动态内存分配实现动态数组,并体会指针在其中的作用。

7.理解函数定义、原型和调用,掌握函数参数的传递(传值、传指针和传引用)二、实验内容及要求(鼓励一题多解)1.深入理解《上机实践训练教程》2.6实验六案例示范和有关概念文字描述中的知识点,给出你的理解。

定义指针时一定要给指针分配好应有的类型和内存空间,防止出现野指针,造成程序不能运行甚至系统崩溃。

数组名不能作为左值,它实际上是一个常量指针,不能通过str=“comrade”给字符数组str赋值。

2.输入每个学生的姓名和线性代数、通信原理和C语言课程成绩,统计每人的平均值,并按平均值降序排列,输出排列后的名次、姓名、课程名(成绩)和平均值。

(注:平均值相同者按姓名的字母表顺序排列)(要求用结构体数据类型实现)#include <stdio.h>#include <math.h>#include <stdlib.h>#define N 3struct student{int rank;char name[20];double score[3];double aver;};void input(struct student *p,int n);void sort(struct student *p,int n);double average (struct student *p,int n);void output(struct student *p,int n,double aver);void main(){struct student stu[N];double aver;input(stu,N);sort(stu,N);aver=average(stu,N);output(stu,N,aver);}void input(struct student *p,int n){int i,j;double a;char str[20];for(i=0;i<n;i++,p++){printf("请输入考生姓名:\n");gets(p->name);printf("请依次输入学生线性代数、通信原理、c语言分数:\n");for(a=0,j=0;j<3;j++){gets(str);p->score[j]=atof(str);a+=p->score[j];}p->aver=a/3;}return;}void sort(struct student *p,int n){struct student temp;int i,j;for(i=0;i<n-1;i++){for(j=0;j<n-1-i;j++){if(p[j].aver<p[j+1].aver){temp=p[j];p[j]=p[j+1];p[j+1]=temp;}}}}double average(struct student *p,int n){int i;double temp;for(i=0,temp=0;i<n;i++)temp=temp+p[i].aver;return temp/n;}void output(struct student *p,int n,double aver){int i;printf("姓名线性代数通信原理c语言平均分\n");printf("-----------------------------------------\n");for(i=0;i<n;i++){printf("%-10s%8.2lf%8.2lf%8.2lf%8.2lf\n",p[i].name,p[i].score[0],p[i].score[1],p[i].score[2],p[i].aver);}}运行结果:3.利用指向指针的指针方法对N个整数排序并输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章一.选择题1.C2.B D3.A4.A5. D6.C7.D8.C9.A 10.D 11.B 12.D 13.C 14.D 15.A16.B 17.A 18.B 100011 001111二.判断题1.错2.错3.错4.错三.填空题1. B 662. n1=%d\nn2=%d\n3. 0四.计算1(1)x|y = 0x002f(2)x^y = 0x0026(3)x&y = 0x0009;(4)~x+~y = 0xffc6(5)x<<=3 0x0068(6)y>>=4 0x00022(1) 6(2)50(3) 1(4)–16(5) 1(6)203(1)0(2) 1(3) 1(4) 4(5)8(6) 14(1)12(2)0(3) 1(4)27(6) 6(7)24(8)27(9)–295(1)0(2) 1(3) 1(4)–3(5) 2五.程序分析题程序1b=20 a=3600程序2第三章一.填空题1.s=62.963.(1) scanf("%c",&c);(2) c-32 更好的答案:c-('a'-'A')2.1main(){int a,b;printf("please input a & b:");scanf("%d%d",&a,&b);printf("\nmax is %d\n",(a>b)?a:b);}2.2int max(int x,int y);main(){int a,b,c,max;printf("please input a & b & c:");scanf("%d%d%d",&a,&b,&c);max=a>b?a:b;max=c>max?c:max;printf("\nmax is %d\n",max);}2.3{int i=0,sum=0;while(i<=100){sum+=i;i++;}printf("1+2+3+......+100=%d\n",sum);}2.4main(){int i;int a=10,b=-3;int c;printf("%6d%6d",a,b);for(i=2;i<10;i++){c=3*b+a;printf("%6d",c);a=b;b=c;}printf("\n");}2.5main(){int i;while(1){printf("please input a data(0:exit):");scanf("%d",&i);if(i==0)break;if(i%2==0)printf("the data %d is a even number.\n",i);elseprintf("the data %d is a odd number.\n",i); }}2.6#include <stdio.h>main(){int i;int a=8,b=1;int sum=0;for(i=0;i<10;i++){b+=3;sum += a;a+=b;printf("a%8d b:%8d\n",a,b);}printf("The Sum Of Is:%d\n",sum);}2.7#include <stdio.h>main(){float x,y;printf("please input x:");scanf("%f",&x);if(x<1.0)y=x;else if(x<10)y=2*x-1;elsey=3*x-11;printf("y=%f\n",y);}2.8#include <stdio.h>main(){long a,i,b,a1;while(1){printf("please input data(1-99999):");scanf("%ld",&a);printf("a:%ld\n",a);if(a<=0||a>=100000)break;i=0;a1=0;while(a!=0){b=a%10;printf("%8d",b);a/=10;i++;a1=a1*10+b;}printf("\n i:%ld a1:%ld\n",i,a1);}}2.9#include <stdio.h>#include <time.h>#include <stdlib.h>main(){int a,b,i,k=0;randomize();a=random(1001);/*create a random data(0-1000)*/ for(i=0;i<20;i++){printf("please guess a number:");scanf("%d",&b);if(a>b){k++;printf("\n%d:Smaller,guess again!\n",k);}else if(a<b){k++;printf("\n%d:Bigger,guess again!\n",k);}else{printf("\nYou guess right,congraturation!") ;printf("\nYou have guessed %d times",k);break;}}if(k==20)printf("\nsorry,you failed!");}2.10#include <stdio.h>main(){int a,b,c;int num;for(a=0;a<10;a++){for(b=0;b<10;b++){for(c=1;c<10;c++){num=a*100+b*10+c;if((num%3==0)&&(a==5||b==5||c==5))printf("%8d",num);}}}printf("\n\n\n");}2.11#include <stdio.h>main(){int i;int a,b;printf("please input a,b:");scanf("%d%d",&a,&b);for(i=a<b?a:b;i>0;i--){if(a%i==0&&b%i==0){printf("The max=%d",i);break;}}for(i=a>b?a:b;i>0;i++){if(i%a==0&&i%b==0){printf("\nThe min=%d",i);break;}}2.12#include <stdio.h>main(){int a,k=0;printf("please input data:");scanf("%d",&a);while(a%2==0){a=a/2;k++;}printf("\nthe number of factor(2) is %d",k); }2.13main(){long i,t=1;long sum=0;for(i=1;i<=10;i++){t*=i;sum+=t;printf("%ld!=%ld\n",i,t);}printf("sum:%ld\n",sum);}2.14#include <stdio.h>void main(){int i,x=0;for(i=9;i>=1;i--){x=2*(x+1);}printf("The first day:%d",x);}2.15#include <stdio.h>#define PI 3.141593main(){float r,h;float v;printf("please input r,h:");scanf("%f%f",&r,&h);v=1.0/3*PI*r*r*h;printf("V=%.2f",v);}2.16#include<stdio.h>#include<math.h>main(){long int sn=0;long int m=0,t=0;int a,n,i;printf("please input a n:");scanf("%d%d",&a,&n);for(i=0;i<n;i++){m=m*10+a;sn+=m;}printf("a+aa+aaa+...+aa...a=%ld\n\n",sn); }2.17#include <stdio.h>main(){int k;printf("please input k:");do{scanf("%d",&k);if(k>=0&&k<=6)break;}while(1);switch(k){case 0:printf("Sunday.\n");break;case 1:printf("Monday.\n");break;case 2:printf("Tuesday.\n");break;case 3:printf("Wednesday.\n");break;case 4:printf("Thursday.\n");break;case 5:printf("Friday.\n");break;case 6:printf("Saturday.\n");break;}}2.18#include <stdio.h>main(){int i;double x,a,b=1,sum=1;printf("please input x:");scanf("%lf",&x);a=x;for(i=1;a/b>=1e-6;i++){sum=sum+a/b;a=a*x;b=(i+1)*b;}printf("\nsum=%lf",sum);}2.19#include <stdio.h>#include <math.h>main(){float a,x1,x2;printf("input a:");scanf("%f",&a);x1=1.0;while(1){x2=1.0/2*(x1+a/x1);if(fabs(x2-x1)<1e-5)break;x1=x2;}printf("sqrt(a)=%f",x2);}第四章写出下列程序输出结果1.no 1 a=1no 1 a=0no 1 a=1no 1 a=02.a=0 b=0 c=0a=1 b=0 c=0a=2 b=0 c=03.main:x=5,y=1,n=1func:x=6,y=21,n=11main:x=5,y=1,n=11func:x=8,y=31,n=21第五章1.D2.D3.C4.65.CDABC6.(1)j+=2(2)a[i]<a[j]7.(1)s[i++]!='\0'(2)s[i-1]8.D9.B10.6(同题4)11.s[i]>='0'&&s[i]<='9'12. (1)'\0' (2)str1[i]-str2[i]5.1#include<stdio.h>int fun();int fun(){int a[3][3],sum;int i,j;sum=0;/*error*/for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d",&a[i][j]);/*error*/}for(i=0;i<3;i++)sum=sum+a[i][i];printf("sum=%d\n",sum);}void main(){fun();}5.2#include <stdio.h>void main( void ){float Num[10];float Input,GetNum[11];int i,j;float a=6;for(i=0; i<10; i++){Num[i]=a;a=a+7.5;}Loop1: printf("Please input a Number(0-80) Input=");scanf("%f",&Input);if((Input<0)||(Input>70)==1)goto Loop1;for(i=0; i<10; i++ ){if(Input<Num[i])goto Loop2;}Loop2: for(j=0; j<i; j++ )GetNum[j]=Num[j];GetNum[j]=Input;for(j=i; j<=10; j++,i++)GetNum[j+1]=Num[i];for(j=0; j<11; j++ )printf("%3.3f ",GetNum[j]);}5.3#include "stdio.h"#include "stdlib.h"main(){int a1,a2,a3,a4,a5,a6,a7,a8,a9;int a[3];int i;for(;;){for (i=0;i<3;i++){a[i]=rand()%3;}while((a[0]!=a[1]) && (a[0]!=a[2]) && (a[1]!=a[2]))/*get three different numbers 0,1,2*/{a1=a[0]+1;/*divide 1~9 into three groups,a1~a3,a4~a6,a7~a9*/a2=a[1]+1;a3=a[2]+1;a4=a1+3;a5=a2+3;a6=a3+3;a7=a1+6;a8=a2+6;a9=a3+6;/* make sure that each line and each row is made up with three members in different group.*//* such as: a9 a1 a5a2 a6 a7a4 a8 a3 */if(((a1+a5+a9) == (a2+a6+a7)) && ((a1+a5+a9) == (a3+a4+a8))&& ((a1+a6+a8) == (a5+a7+a3)) && ((a1+a5+a9) == (a2+a4+a9))) {printf("%d %d %d\n%d %d %d\n%d %d %d\n",a9,a1,a5,a2,a6,a7,a4,a8,a3);return;}}}}5.4#include <stdio.h>void main(void){char input1[100],input2[100],input3[100];int i,Eng=0,eng=0,num=0,blank=0,other=0;printf("Input 3 rows of character,each row don't exceed 80 characters:\n");gets(input1);printf("The second row:\n");gets(input2);printf("The third row:\n");gets(input3);/*test the first row*/for(i=0; i<100; i++){if(input1[i]=='\0')goto Loop1;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)Eng++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)eng++;else if(('0'<=input1[i])&&(input1[i]<='9')==1)num++;else if(input1[i]==32)blank++;else other++;}/*test the second row*/Loop1: for(i=0; i<100; i++){if(input2[i]=='\0')goto Loop2;else if(('A'<=input2[i])&&(input2[i]<='Z')==1)Eng++;else if(('a'<=input2[i])&&(input2[i]<='z')==1)eng++;else if(('0'<=input2[i])&&(input2[i]<='9')==1)num++;else if(input2[i]==32)blank++;else other++;}/*test the third row*/Loop2: for(i=0; i<100; i++){if(input3[i]=='\0')goto Loop3;else if(('A'<=input3[i])&&(input3[i]<='Z')==1)Eng++;else if(('a'<=input3[i])&&(input3[i]<='z')==1)eng++;else if(('0'<=input3[i])&&(input3[i]<='9')==1)num++;else if(input3[i]==32)blank++;else other++;}Loop3: printf("Upper english character:%d\nLower english character:%d\nNumber:%d\nBlank:%d\nOther characters:%d\n",Eng,eng,num,blank,other);}5.5#include <stdio.h>void main(void)char str1[80],str2[40];int i,j,k;/*Input two string*/printf("Please input the first string\n str1=");gets(str1);printf("Please input the second string\n str2=");gets(str2);/*Get the end of str1*/for(i=0; i<80; i++){if(str1[i]=='\0')break;}/*Copy str2 to str1*/for(j=i,k=0; str2[k]!='\0';k++,j++)str1[j]=str2[k];str1[i+k]='\0';puts(str1);}5.6#include <stdio.h>struct student{char name[20];int score;}stu[5],stu1;void main(void){ int i,j;printf("Input student's score and name(5),seperate using the character of ',' :\n");for(i=0; i<5; i++)scanf("%d,%s",&stu[i].score,&stu[i].name);/*sorting*/for(i=0; i<5; i++)for(j=0; j<4-i; j++)if(stu[j].score>stu[j+1].score){stu1=stu[j];stu[j]=stu[j+1];stu[j+1]=stu1;}printf("After sotred,score and name:\n");for(i=0; i<5; i++)printf("%d,%s\n",stu[i].score,stu[i].name); }5.7#include<stdio.h>main(){ int a[3][3],i,j,m,n,o,p;printf("Please input a 3*3 shuzu:\n");for (i=0;i<=2;i++)for (j=0;j<=2;j++)scanf("%d",&a[i][j]);for (i=0;i<=2;i++){ m=(a[i][0]>a[i][1])? a[i][0]:a[i][1];n=(m>a[i][2])? m: a[i][2];}for (j=0;j<=2;j++){ o=(a[0][j]<a[1][j])? a[0][j]:a[1][j];p=(o<a[2][j])? o: a[2][j];}if (n==p)printf("Andian is %d\\n",p);elseprintf("There is no andian.\\n"); }5.8#include <stdio.h>void main(void){ int a[4][3],b[3][4],i,j;for(i=0; i<4; i++){ for(j=0; j<3; j++)scanf("%d",&a[i][j]);}for(i=0; i<4; i++){printf("\n");for(j=0; j<3; j++)printf("%5d ",a[i][j]);}for(i=0; i<4; i++){for(j=0; j<3; j++)b[j][i]=a[i][j];}printf("\n");for(i=0; i<3; i++){printf("\n");for(j=0; j<4; j++)printf("%5d ",b[i][j]);}5.9#include <stdio.h>#include<math.h>void main(void){ char str[6];int i,j=0,m=0,n=0;gets(str);while(str[j]!='\0') j++;for(i=j-1;i>=0;i--){m=(str[i]-'0')*(pow(8,j-i-1));n+=m;}printf("shijinzhi %d",n);}5.10#include <stdio.h>void main(void){char input1[100];int i,num=0,blank=0;printf("Please input a row character:\n");gets(input1);/*test the first row*/for(i=0; i<100; i++){if(input1[i]=='\0')goto Loop;else if(('A'<=input1[i])&&(input1[i]<='Z')==1)num++;else if(('a'<=input1[i])&&(input1[i]<='z')==1)num++;else if (input1[i]==32)blank++;}Loop: printf("Character:%d\nBlank:%d\n",num,blank);}第六章一、选择题1.D :p中记录的是a的地址,*p访问地址a的值2.D :指针数组3.D:指针可以进行是否相等判断,空指针可以进行指针变量初始化,指针可以偏移;4.C:5.C、D:a[5]不存在,若*&a[4]则正确;C,D正确;6.D:7.B:8.B:二、填空题1.*(p+3) 2 222.cdefgbcdefgabcdefg73.6385三、程序分析题1.p = s[0] ;错误,应改为:p = s;或p = &s[0];2.int x , *p;错误,应改为:double x, *p;3.*p = x ;错误,应改为:p = &x ;4.声明顺序错误;应该改为:void main(void){int a;int *p = &a;a = 10;printf(“%d\n”,*p);}2.3 #include <stdio.h>#include <string.h>main(){char ch[2][5] = {"6937","8254"},*p[2]; int i,j,s=0;for(i=0;i<2;i++)p[i] = ch[i];for(i=0;i<2;i++)for(j=0;p[i][j]>'\0';j+=2)s = 10*s + p[i][j] - '0';printf("%d\n",s);}4.1#include <stdio.h>#include <string.h>main(){int count = 0;char str1[100],str2[100];char *p1,*p2;printf("please enter string 1:");gets(str1);printf("please enter string 2:");gets(str2);printf("str1:%s\n",str1);printf("str2:%s\n",str2);p1 = str1;p2 = str2;while(*p1!='\0'&&*p2!='\0'){if(*p1++==*p2++)count++;}printf("count:%d\n",count);}4.2#include <stdio.h>#include <string.h>main()int i,j,k;int a[3];int temp;printf("please enter array a[3]:"); scanf("%d%d%d",&a[0],&a[1],&a[2]);for(i=0;i<2;i++){k = i;for(j= i+1;j<3;j++){if(a[j]<a[i])k = j;}if(k!=i){temp = a[i];a[i] = a[k];a[k] = temp;}}for(i=0;i<3;i++)printf("%d\t",a[i]);printf("\n");}4.3#include <stdio.h>#include <string.h>#define N 100main(){char s1[N], s2[N],*p;int m;printf("please enter string1:");gets(s1);p = s1;printf("enter m:");scanf("%d",&m);strcpy(s2,p+m);printf("string2:%s\n",s2);}4.4#include <stdio.h>#include <string.h>main(){char s[100]="iuiui012asdd90k890y098kkkk1234",*p; char data[100][100]={{0}};int count=0;int i;p = s;/*printf("please enter a string:");gets(p);*/printf("sssss:%s\n",s);while(*p!='\0'){i=0;while(*p>='0'&&*p<='9'){data[count][i] = *p;i++;p++;}if(i!=0)count++;p++;}printf("count:%d\n",count);for(i=0;i<count;i++)printf("%s\n",data[i]);}4.5#include <stdio.h>#define SIZE 4main()int data[SIZE][SIZE],i,j,d;int max,m=0,n=0;for(i=0;i<SIZE;i++){for(j=0;j<SIZE;j++){scanf("%d",&data[i][j]);}}for(i=0;i<SIZE;i++){for(j=i+1;j<SIZE;j++){d = data[i][j];data[i][j] = data[j][i];data[j][i] = d;}}max = data[0][0];for(i=0;i<SIZE;i++){printf("\n");for(j=0;j<SIZE;j++){printf("%4d",data[i][j]);if(data[i][j]>=max){max = data[i][j];m = i;n = j;}}}printf("\nmax:%4d m:%d n:%d\n",max,m,n);}4.6#include <stdio.h>#include <string.h>main(){char *p[] = {"test","capital","index","large","small"}; char **pstr = p;int a,b,n = 5;char *temp;for(a=0;a<n-1;a++){for(b=a+1;b<n;b++){if(strcmp(pstr[a],pstr[b])>0){temp = pstr[a];pstr[a] = pstr[b];pstr[b] = temp;}}}for(a=0;a<n;a++)printf("%s\n",pstr[a]);}4.7#include <stdio.h>#include <string.h>main(){char s[100],temp;char *p = s;int i,length;printf("please enter a string: ");gets(s);while(*p++!='\0');length = p - s -1;printf("string length:%d\n",length);for(i=0;i<length/2;i++){temp = s[i];s[i] = s[length-i-1];s[length-i-1] = temp;}printf("%s\n",s);}第七章一,选择题1.A2.D3.B4.D5.C6.A7.B二.程序填空题1.(1) a[k](2) a[k](3) a[k]2.(1) a[i](2) j(3) i+1或6三.改错题1.#include<stdio.h>#include<string.h>void swap(char *,char *); /*此处有错误,函数声明时要加分号*/main(){char a[80],b[80],c[80];scanf("%s%s%s",a,b,c); /*此处有错误,a,b,c分别为数组a[80],b[8],c[80]的首地址*/ if(strcmp(a,b)>0) swap(a,b); /*此处有错误,字符串比较应该使用strcmp函数*/if(strcmp(b,c)>0) swap(b,c); /*此处有错误,原因同上*/if(strcmp(a,b)>0) swap(a,b); /*原算法不能实现排序,需要添加此语句*/printf("%s\n%s\n%s\n",a,b,c);}7.3.1#include <stdio.h>#include <string.h>void swap(char *pstr1,char *pstr2){char p[80];strcpy(p,pstr1);strcpy(pstr1,pstr2);strcpy(pstr2,p);}main(){char a[80]="ccc",b[80]="bbb",c[80]="aaa";/* scanf("%s%s%s",a,b,c); */if(strcmp(a,b)>0)swap(a,b);if(strcmp(b,c)>0)swap(b,c);if(strcmp(a,b)>0)swap(a,b);printf("%s\n%s\n%s\n\n\n",a,b,c);}7.4.1#include <stdio.h>int SquSum(int,int);main(){int a,b;int c;printf("enter 2 integer:");scanf("%d%d",&a,&b);c = SquSum(a,b);printf("a=%d b:%d a2+b2=%d\n",a,b,c); }int SquSum(int x,int y){int z;z = x*x+y*y;return z;}7.4.2#include <stdio.h>int GongYueShu(int,int);int GongBeiShu(int,int);{int a,b;int gbs,gys;printf("enter 2 integer:");scanf("%d%d",&a,&b);gys = GongYueShu(a,b);gbs = GongBeiShu(a,b);if(gys<0)printf("There has not gong yue shu!!!!!!\n"); elseprintf("max gong yue shu:%d\n",gys); printf("min gong bei shu:%d\n",gbs);}int GongYueShu(int x,int y){int i,gys=-1,min;min = x;if(x>y)min = y;for(i=2;i<=min;i++){if((x%i==0)&&(y%i==0))gys = i;}return gys;}int GongBeiShu(int x,int y){int i,gbs,max;max = x;if(y>x)max = y;for(i=max;i<=x*y;i++){if((i%x==0)&&(i%y==0)){gbs = i;break;}return gbs;}7.4.4#include <stdio.h>#include <string.h>void Delete_Ch(char *,char);main(){char str[80],ch;printf("please a string:");gets(str);printf("please a char:");scanf("%c",&ch);Delete_Ch(str,ch);printf("%s\n\n",str);}void Delete_Ch(char *p,char ch){while(*p){if(*p==ch){strcpy(p,p+1);}elsep++;}}7.4.5#include <stdio.h>int Is_ShuShu(int); /* return 0:shushureturn -1:no shushu*/main(){int a,ret;scanf("%d",&a);ret = Is_ShuShu(a);if(ret==0)printf("%d is a shushu!!!\n",a);elseprintf("%d is not a shushu\n",a);}int Is_ShuShu(int x){int i;for(i=2;i<x/2;i++){if(x%i==0)return -1;}if(i>=x/2)return 0;}7.4.6#include <stdio.h>#include <string.h>void StrCat(char *s1,char *s2){while(*s1!='\0')s1++;while(*s2!='\0'){*s1 = *s2;s1++;s2++;}*s1='\0';}main(){char a[200]="123456789",b[100]="ABCDEFG"; printf("pls enter string 1:");gets(a);gets(b);StrCat(a,b);printf("%s\n\n",a);}7.4.7#include <stdio.h>#include <string.h>void Stat(char *s,int *ch,int *dig,int *spa,int *oth){while(*s!='\0'){if(((*s>='a')&&(*s<='z'))||((*s>='A')&&(*s<='Z')))(*ch)++;else if((*s>='0')&&(*s<='9'))(*dig)++;else if(*s == ' ')(*spa)++;else(*oth)++;s++;}}main(){char a[200];int ch=0,dig=0,spa=0,oth=0;printf("pls enter a string :");gets(a);Stat(a,&ch,&dig,&spa,&oth);printf("ch:%d dig:%d spa:%d oth:%d",ch,dig,spa,oth); }7.4.8#include <stdio.h>#include <string.h>void reverse(char *s)if(*s){}main(){char s[] = "abcde"; reverse(s);puts(s);}7.4.9#include <stdio.h>#include <string.h>paixu(int *p,int n,int flag) {int i,j,m;int temp;for(i=0;i<n-1;i++) {m = i;for(j=i+1;j<n;j++){if(flag == 1){if(p[j]>p[m])m = j;}else{if(p[j]<p[m])m = j;}}if(m!=i){temp = p[i];p[i] = p[m];p[m] = temp;}}}main(){int a[20];int n,i;int flag;printf("please enter n(<20):"); scanf("%d",&n);getchar();printf("please enter array a:");for(i=0;i<n;i++)scanf("%d",&a[i]);getchar();printf("please enter paixu flag:\n"); printf("\t1:degression\n");printf("\t0:increasion\t:");scanf("%d",&flag);paixu(a,n,flag);printf("array a is:");for(i=0;i<n;i++)printf("%4d",a[i]);printf("\n\n");}。

相关文档
最新文档