C语言第八次作业答案

合集下载

C语言第8次实训题目及参考答案

C语言第8次实训题目及参考答案
if(sushu(i)==1) {
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语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版 第2版)》(严蔚敏 著)第八章练习题答案

《数据结构(C语言版第2版)》(严蔚敏著)第八章练习题答案第8章排序1.选择题(1)从未排序序列中依次取出元素与已排序序列中的元素进行比较,将其放入已排序序列的正确位置上的方法,这种排序方法称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:C(2)从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。

A.归并排序B.冒泡排序C.插入排序D.选择排序答案:D(3)对n个不同的关键字由小到大进行冒泡排序,在下列()情况下比较的次数最多。

A.从小到大排列好的B.从大到小排列好的C.元素无序D.元素基本有序答案:B解释:对关键字进行冒泡排序,关键字逆序时比较次数最多。

(4)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数最多为()。

A.n+1B.n C.n-1D.n(n-1)/2答案:D解释:比较次数最多时,第一次比较n-1次,第二次比较n-2次……最后一次比较1次,即(n-1)+(n-2)+…+1=n(n-1)/2。

(5)快速排序在下列()情况下最易发挥其长处。

A.被排序的数据中含有多个相同排序码B.被排序的数据已基本有序C.被排序的数据完全无序D.被排序的数据中的最大值和最小值相差悬殊答案:C解释:B选项是快速排序的最坏情况。

(6)对n个关键字作快速排序,在最坏情况下,算法的时间复杂度是()。

A.O(n)B.O(n2)C.O(nlog2n)D.O(n3)答案:B解释:快速排序的平均时间复杂度为O(nlog2n),但在最坏情况下,即关键字基本排好序的情况下,时间复杂度为O(n2)。

(7)若一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。

A.38,40,46,56,79,84B.40,38,46,79,56,84C.40,38,46,56,79,84D.40,38,46,84,56,79答案:C(8)下列关键字序列中,()是堆。

C语言程序设计(谭浩强)第八章详细课后答案

C语言程序设计(谭浩强)第八章详细课后答案

#if 0 //8.1#include<stdio.h>#include<math.h>void main(){int Common_divisor(int a,int b);int Common_mutiple(int m,int n);int result_1,result_2;int number_1,number_2;printf("Enter number_1 and number_2 value:");scanf("%d,%d",&number_1,&number_2);result_1 = Common_divisor(number_1,number_2);result_2 = Common_mutiple(number_1,number_2);printf("最大公约数:%d\n最小公倍数:%d\n",result_1,result_2); }int Common_divisor(int a,int b){int r = 1;while(r != 0){if(a>b){r = a%b;a = b;b = r;if(r == 0){return a;break;}}else{r = b%a;b = a;if(r == 0){return b;break;}a = r;}}}int Common_mutiple(int m,int n){int Common_divisor(int a,int b);int temp = 0,result = 0;temp = Common_divisor(m,n);result = (m*n)/temp;return result;}#endif#if 0 //8.2#include<stdio.h>#include<math.h>float result_1 =0.0,result_2 = 0.0;void main(){void Funvtion_1(float a,float b,float temp);void Function_2(float a,float b);float a,b,c;float temp;printf("Enter a,b,c value:");scanf("%f,%f,%f",&a,&b,&c);temp = b*b-4*a*c;if(temp > 0){Funvtion_1(a,b,temp);printf("x1 = %.3f,x2 = %.3f\n",result_1,result_2);}else if(temp < 0){printf("此函数没有根!\n");}else{Function_2(a,b);printf("x1 = x2 = %.3f\n",result_1);}}void Funvtion_1(float a,float b,float temp){result_1 = (-b+temp)/(2*a);result_2 = (-b-temp)/(2*a); }void Function_2(float a,float b) {result_1 = (-b)/(2*a);}#endif#if 0 //8.3#include<stdio.h>#include<math.h>void main(){void Prime(int n);int m;printf("Enter m value:");scanf("%d",&m);Prime(m);}void Prime(int n){int i = 0 ,k;k = (int)sqrt(n);for(i = 2; i <= k;i++){if(n%i == 0){break;}}if(i > k){printf("The number %d is a prime!\n",n);}else{printf("The number %d isn't a prime!\n",n);}}#endif#if 0#include<stdio.h>#include<math.h>int c[3][3];void main(){void Function(int b[3][3]);int a[3][3] = {{1,2,3},{4,5,6},{7,8,9}};int i,j;// int d[3][3];int k = sizeof(a[2])/sizeof(int); //列数int n = sizeof(a)/sizeof(int);for(i = 0; i < n/k;i++){for(j = 0;j < k;j++){printf("%d ",a[i][j]);}printf("\n");}Function(a);for(i = 0; i < k;i++){for(j = 0;j < n/k;j++){printf("%d ",c[i][j]);}printf("\n");}}void Function(int b[3][3]){int i = 0,j = 0;int k = sizeof(b[3])/sizeof(int);int n = sizeof(b)/sizeof(int);for(i = 0;i < k ;++i){for(j = 0;j < k; ++j){c[j][i] = b[i][j];}}}#endif#if 0#include<stdio.h>#include<math.h>#include<string.h>void main(){void Function(char a[100],char b[100]);char a[100];extern int b[100];int n = sizeof(a);printf("Enter a Array:");gets(a);Function(a,b);}void Function(char a[],char b[]){int i = 0;int n = sizeof(a)/sizeof(char);int m = strlen(a);for(i = 0; i < m;i++){b[i] = a[m-1-i];}//printf("put b Array:");//puts(b);for(i = 0;i < m;i++){putchar(b[i]);}}#endif#if 0 //8.6#include<stdio.h>#include<math.h>void main(){char a[20];char b[10];printf("Enter string a value:");gets(a);printf("Enter string b value:");gets(b);strcat(a,b);puts(a);}#endif#if 0 //8.6#include<stdio.h>#include<math.h>#include<string.h>int a[20];void main(){void Connect(char a[],char b[]);char b[10];printf("Enter string a value:");gets(a);printf("Enter string b value:");gets(b);Connect(a,b);// puts(a);printf("%s",a);}void Connect(char a[],char b[]) {int i = 0;int j = 0;while(a[i] != '\0'){i++;}while(b[j] != '\0'){a[i++] = b[j++];}// a[i] = '\0';}#endif#if 0//8.7#include<stdio.h>#include<math.h>#include<string.h>char b[100];void main(){void Research_vowel(char a[]);char a[50];printf("Enter string a value:");gets(a);Research_vowel(a);puts(b);}void Research_vowel(char a[]){int i = 0,j = 0;for(; i < strlen(a);i++){if(a[i] == 'a'|| a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u'){b[j] = a[i];j++;}}#endif#if 0//8.8#include<stdio.h>#include<math.h>char a[4];void main(){void Divide(int n);int n = 0,i = 0;printf("Enter n value(<10000):");scanf("%d",&n);Divide(n);for(;i<4;i++){printf("%d ",a[i]);}printf("\n");}void Divide(int n)int i = 0,c = 0,b = 0,m = 1000;while(m >= 1){c = n/m;b = n%m;m = m/10;a[i] = c;n = b;i++;}}#endif#if 0//8.9#include<stdio.h>#include<math.h>#include<string.h>int m = 0,n = 0,r = 0,l = 0;void main(){void Research_number(char a[]);char a[50];int i = 0;printf("enter string value:");gets(a);/*for(;i<strlen(a);i++){printf("%c",a[i]);}*/puts(a);puts("");Research_number(a);printf("字母个数是:%d,数字个数是:%d,空格个数是:%d,其它:%d\n",m,n,r,l);}void Research_number(char a[]){int i = 0;for(i = 0;i<strlen(a);i++){if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')){m++;}else if(a[i] > 47 && a[i] < 58){n++;}else if(a[i] == 32){r++;}else{l++;}}}#endif#if 0 //8.10#include<stdio.h>#include<math.h>#include<string.h>void main(){void Array(char a[]);char b[20];printf("Enter b string(<20):");gets(b);printf("Longest word is : ");Array(b);}void Array(char a[]){int i = 0,place = 0,point = 0,length = 1; //point表示最长单词的开始位置place表示最长单词最后的一个位置int max = 0,j = 0;int flag = 0; //为0 时是空格为1时是单词max = length;for(i = 0;i<=strlen(a);i++){if(a[i] != ' ' && a[i] != '\0'){if(0 == flag){j = i;flag = 1;}elselength++; //这个题让我做的非常的难过以后要好好的复习}else{flag = 0;if(max < length){max = length;point = j;place = i;}length = 1;}}for(i = point;i <= place;i++){printf("%c",a[i]);}printf("\n");}/*int judge_words(char b[20]){int i = 0,flag = 1;for(i = 0;i < strlen(b); i++){if((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')){flag = 1;}else{flag = 0;}}}*/#if 0 //8.11#include<stdio.h>#include<math.h>void main(){void bubbling(char a[]);char a[10];printf("enter string a value:");gets(a);bubbling(a);puts(a);}void bubbling(char a[]){int i = 0,j = 0;char temp;for(i = 0;i<strlen(a) - 1;i++){for( j = 0;j<strlen(a)-1-i;j++)if(a[j] > a[j+1]){temp = a[j];a[j] = a[j+1];a[j+1] = temp;}}}}#endif#if 0 //8.12#include<stdio.h>#include<math.h>void main(){float Function(float x);float x = 1.5,x1 = 0.0;x1 = Function(x);printf("%.3f\n",x1);}float Function(float x){float x1;float y,y1;while(fabs(y1)>=1e-6){x = x1;y1 = x*x*x+2*x*x+3*x+4;y = 3*x*x+4*x+3;x1 = x - (y1/y);}return x1;}#endif#if 0//8.13#include<stdio.h>#include<math.h>void main(){float p(float x,int n);float x = 0.0,result = 0.0;int n = 0;printf("Enter x and n value:");scanf("%f,%d",&x,&n);result = p(x,n);printf("p(x) value :%.3f\n",result);}float p(float x,int n){float y = 0.0;if(n == 0){y = 0;}else if(n == 1){y = x;}else{y = ((2*n-1)*x-p(x,n-1)-(n-1)*p(x,n-2))/n;}return y;}#endif#if 0//8.14#include<stdio.h>#include<math.h>int r = 0,l = 0;void main(){float* EStudent_aver(float scores[10][5]);float* EClass_aver(float scores[10][5]);float Maxscore(float scores[10][5]);float variance(float scores[10][5]);float scores[10][5] = {{76,43,46,73,46},{34,67,89,32,47},{31,68,73,16,87},{31,67,31,37,63},{16 ,37,61,67,86},{31,34,60,49,29},{89,89,87,87,98},{97,34,89,42,89},{45,67,34,18,64},{ 32,16,87,42,15}};float *Student_aver,*Class_aver,Student_max = 0.0,aver_variance = 0.0;int i = 0,j = 0,k = 0;/* char Student_name[] = {"Zhanghua Xiaoming Ligang Xiaotao Zhangsan Xiaoqiang CBC Baixu Gongcheng BOBO "};char score_name[] = {"Chinese Math English Chemitry WuLi"};printf("\t");for(i = 0;i < strlen(score_name);i++){printf("%c",score_name[i]);}puts("");for(i = 0;i < strlen(Student_name);i++){printf("%c",Student_name[i]);if(Student_name[i] == 32){for(j = 0;j < 5;j++){printf(" %.0f\t",scores[k][j]);}k++;puts("");}}*//* printf("\n");for(i = 0; i < 10;i++){for(j = 0;j < 5;j++){printf(" %.0f\t",scores[i][j]);}puts("");}*/// float scores[10][5];printf("NO. course1 course2 course3 course4 course5\n");for(i = 0;i < 10;i++){printf("No.%2d\t",i+1);for(j = 0;j < 5;j++){printf("%.2f\t ",scores[i][j]);}puts("");}Student_aver = EStudent_aver(scores);Class_aver = EClass_aver(scores);Student_max = Maxscore(scores);aver_variance = variance(scores);printf("Student_aver:\n");for(i = 0;i < 10;i++){printf("%.2f ",Student_aver[i]);}printf("\nClass_aver:\n");for(i = 0 ;i < 5;i++){printf("%.2f ",Class_aver[i]);}printf("\n");printf("The Max Score:\n %.2f Name: No.%d , Course: course%d\n",Student_max,r,l);printf("Student average Variance: \n %.2f\n",aver_variance);}float * EStudent_aver(float scores[10][5]){static float aver[10],sum = 0.0;int i = 0,j = 0;for(i = 0;i < 10;i++){for(j = 0; j < 5; j++){sum += scores[i][j];}aver[i] = sum/5;sum = 0;}return aver;}float* EClass_aver(float scores[10][5]) {static float aver_1[5],sum = 0.0;int i = 0,j = 0;for(j = 0;j<5;j++){for(i = 0;i<10;i++){sum +=scores[i][j];}aver_1[j] = sum/10;sum = 0;}return aver_1;}float Maxscore(float scores[10][5]) {int i = 0,j = 0;float max = scores[0][0];for(i = 0;i < 10;i++){for(j = 0;j < 5;j++){if(max < scores[i][j]){max = scores[i][j];r = i + 1;l = j + 1;}}}return max;}float variance(float scores[10][5]){float* EStudent_aver(float scores[10][5]);float s = 0.0;float sum_1 = 0.0,sum_2 = 0.0;float number_1 = 0.0,number_2 = 0.0;float* student_aver;int i = 0,j = 0;student_aver = EStudent_aver(scores);for(i = 0;i<10;i++){sum_1 += student_aver[i]*student_aver[i];sum_2 += student_aver[i];}number_1 = sum_1/10;number_2 = (sum_2/10)*(sum_2/10);s = number_1 - number_2;return s;}#endif#if 0 //测试static#include<stdio.h>#include<math.h>static j;void f1(){static i = 0;i++;}void f2(){j = 0;j++;}void main(){int k = 0;for(k = 0;k < 10;k++){f1();f2();}}#endif#if 0//8.16#include<stdio.h>#include<math.h>void main(){void Change(int n);int m = 0;printf("Enter ox number:");scanf("%x",&m);// printf("%d\n",m);Change(m);}void Change(int n){//int m;printf("十进制是: %d\n",n); }#endif#if 0//8.17#include<stdio.h>#include<math.h>void main(){void Function(int n);int m;printf("Input a integer:");scanf("%d",&m);Function(m);}void Function(int n){int i;/* if(n!=0){ch[i] = n%10;temp = n/10;i++;Function(temp);}else{ch[i] = 0;}return ch;*/i = n/10;if(i != 0){Function(i);}putchar(n%10+'0');putchar(32);}#endif#if 0 //今天是今年的多少天#include<stdio.h>#include<math.h>void main(){int i = 1,d = 0,sum = 0;int year,month,day;printf("Enter year and month and day(2012/08/19):");scanf("%d/%d/%d",&year,&month,&day);sum = day;for(;i<month;i++){switch(i){case 1:case 3:case 5:case 7:case 8:case 10:case 12: d = 31; break;case 2:if(year%400 == 0 || year%4 == 0 && year%100!=0){d = 29;}else{d = 28;}break;case 4:case 6:case 9:case 11: d = 30;break;}sum += d;}printf("The %d of The year dates!\n",sum); }#endif#if 0 //8.15#include<stdio.h>#define N 10void main(){void Enter_massage(char staff_name[N][10],int staff_number[N]);void Sort(char staff_name[N][10],int staff_number[N]);int middle_search(int staff_number[N],int number);int number,temp = 0;char staff_name[N][10];int staff_number[N];Enter_massage(staff_name,staff_number);//输入信息Sort(staff_name,staff_number);printf("Enter search staff_number:");scanf("%d",&number);temp = middle_search(staff_number,number);printf("The staff number is : %d\n",staff_number[temp]);printf("The staff name is : %s\n",staff_name[temp]);}void Enter_massage(char staff_name[N][10],int staff_number[N]) {int i;for(i = 0;i < N;i++){printf("Enter Staff number No.:");scanf("%d",&staff_number[i]);fflush(stdin);printf("Input staff name:");gets(staff_name[i]);}}void Sort(char staff_name[N][10],int staff_number[N]) {int i,j;int temp1;char temp[N][10];for(i = 0;i < N - 1; i++){for(j = 0;j < N - 1 - i; j++){if(staff_number[j]>staff_number[j+1]){temp1 = staff_number[j];strcpy(temp[j],staff_name[j]);staff_number[j] = staff_number[j+1];strcpy(staff_name[j],staff_name[j+1]);staff_number[j+1] = temp1;strcpy(staff_name[j+1],temp[j]);}}/*if(staff_number[i]<staff_number[i+1]){temp1 = staff_number[i];staff_number[i] = staff_number[i+1];staff_number[i+1] = temp1;}*/}for(i = 0;i < N;i++){printf("staff number is : %d\n",staff_number[i]);printf("staff name is %s\n",staff_name[i]);}}int middle_search(int staff_number[N],int number) //折半查找法!{int min = 0,high = 0,mid = 0;int i = 0;min = 0;high = N - 1;while(min <= high){mid = (min+high)/2;if(staff_number[mid] > number){high = mid - 1;}else if(staff_number[mid] < number){min = mid + 1;}else{return mid;}}}#endif/*fasdfa the world helloint flag=0;flag=1;//letterflag=0;//space*/#if 0 //有问题输出的是不对的!为什么指针值temp+1的值不是指向的name[1]这一行的首地址而是++后指向的是name[0]下一列的地址呢?#include<stdio.h>void main(){char name[5][10];char temp[5][10];int i = 0;// temp = &name[0];for(i = 0;i < 5;i++){gets(name[i]);strcpy(temp[i],name[i]);}for(i = 0;i < 5;i++){//puts(name[i]);puts(temp[i]);}}#endif#if 0 //看不懂的程序8.15 #define N 10find(a,b)int a[],b[];{int i,j,s,t,c[N][2];for(i=0;i<N;i++){c[i][1]=a[i];c[i][1]=i;} for(i=0;i<N;i++)for(j=0;j<N-i-1;j++)if(c[i][0]>c[i+1][0]){t=c[i][0];c[i][0]=c[i+1][0];c[i+1][0]=t;s=c[i][1];c[i][1]=c[i+1][1];c[i+1][1]=s;}for(i=0;i<N;i++)b[i]=c[i][1];return;}lookfor(h,k)int h[],k;{int i,j;for(i=0;i<N;i++)if(h[i]-k==0) j=i;return j;}main(){int number[N],x[N],i,j,u,p;char name[N][20];for(i=0;i<N;i++){gets(name[i]);scanf("%d",&number[i]);} scanf("%d",&p);find(number,x);u=lookfor(number,p);for(i=0;i<N;i++){printf("%d",number[i]);puts(name[x[i]]);}puts(name[x[u]]);}#endif#if 1 //16进制转换成10进制#include<stdio.h>#include<math.h>#define N 10int flag = 1;void main(){extern int sum;int convert(char str[],int n);char str[N];int s = 0,n = 0;puts("Enter 16 OX number:");gets(str);n = strlen(str);s = convert(str,n);if(1 == flag){printf("10 d number is : %d\n",s);}else{printf("The number isn't OX \n");}}int convert(char str[],int n){int i,j = 0;int sum = 0;for(i = n - 1;i > -1;i--,j++){if(str[i] > 47 && str[i] < 58){sum = sum + (str[i] - 48) * (int)pow(16,j);}else if(str[i] > 64 && str[i] < 71){sum = sum + (str[i] - 55)* (int)pow(16,j);}else if(str[i] > 96 && str[i] < 103){sum = sum + (str[i] - 87) * (int)pow(16,j);}else{flag = 0;}}return sum;}#endif#if 0#include<stdio.h>#include<math.h>void main(){printf("%d\n",(int)pow(2,0)); }#endif。

C语言第八次作业答案

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 。

北航大一上c语言第四五六七八次作业

北航大一上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语言课后习题08答案

南航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( ) {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

C语言第八章习题带答案-2012.11.6更新[优秀范文五篇]

C语言第八章习题带答案-2012.11.6更新[优秀范文五篇]

C语言第八章习题带答案-2012.11.6更新[优秀范文五篇]第一篇:C语言第八章习题带答案-2012.11.6更新练习8答案选择题1.在程序中要使用语句:printf(“%sn”, STRING);输出一个长度为5个字符的提示信息“OK!”,则应使用宏定义语句(D)。

A.#define STRING “OK!”B.#define STRING “"OK!”“C.#define STRING ”OK!“D.#define STRING ”“OK!”“2.以下正确的描述为(C)。

A.每个C语言程序必须在开头用预处理命令#includeB.预处理命令必须位于C源程序的首部C.在C语言中预处理命令都以”#“开头D.C语言的预处理命令只能实现宏定义和条件编译的功能3.C语言的编译系统中宏命令是(D)。

A.在程序运行时进行代换处理的B.在程序连接时进行处理的C.和源程序中其他C语句同时进行编译的D.在对源程序中其他成分正式编译之前进行处理的4.从下列选项中选择不会引起二义性的宏定义是(D)。

A.#define POWER(x)x*xB.#define POWER(x)(x)*(x)C.#define POWER(x)(x*x)D.#define POWER(x)((x)*(x))5.若有宏定义如下:#define X 5#define Y X+1#define Z Y*X/2则执行以下printf语句后,输出结果是(D)。

int a;a=Y;printf(”%d,“, Z);printf(”%dn“,--a);A.7,6B.12,6C.12,5D.7,56.若a、b、c、d、t均为int型变量,则执行以下程序段后结果为(C)。

#define MAX(A, B)(A)>(B)?(A):(B)#define PRINT(Y)printf(”Y=%dn", Y)……a=1;b=2;c=3;d=4;t=MAX(a+b, c+d);PRINT(t);A.Y=3B.存在语法错误 C.Y=7D.Y=0第二篇:第二章习题带答案一、单项选择题1、下列关于国内信用证的说法中,错误的是()。

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