C语言程序设计吉林大学
- 格式:ppt
- 大小:277.51 KB
- 文档页数:32


吉大2020-2022学期《C语言程序设计》在线作业二提醒:本科目含有多少随机试卷,请核实本套试卷是否是您需要的材料!!!一、单选题(共10题,40分)1、一个C语言程序是由A一个主程序和若干子程序组成B函数组成C若干过程组成D若干子程序组成提示:复习课程相关知识802,并完成上述题目[正确参考选择]:B2、C语言中,能识别处理的文件为A文本文件和数据块文件B文本文件和二进制文件C流文件和文本文件D数据文件和二进制文件提示:复习课程相关知识802,并完成上述题目[正确参考选择]:B3、下列程序的输出结果是int b=2; int func(int *a){ b += *a; return (b);} main(){ int a=2, res=2; res += func(&a); printf("%d \n",res); }A4B6C8D10提示:复习课程相关知识802,并完成上述题目[正确参考选择]:B4、函数 rewind 的作用是A使文件位置指针重新返回文件的开始位置B将文件位置指针指向文件中所要求的特定位置C使文件位置指针指向文件的末尾D使文件位置指针自动移至下一个字符位置提示:复习课程相关知识802,并完成上述题目[正确参考选择]:A5、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A4B16C32D52提示:复习课程相关知识802,并完成上述题目[正确参考选择]:C——————————6、以下叙述中不正确的是A在不同的函数中可以使用相同的名字的变量B函数中的形式参数是局部变量C在一个函数内定义的变量只在本函数范围内有效D在一个函数内的复合语句中定义的变量在本函数范围内有效提示:复习课程相关知识802,并完成上述题目[正确参考选择]:D7、下面程序的输出结果是main(){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; printf("%d\n",*(p+2));}A3B4C1D2提示:复习课程相关知识802,并完成上述题目[正确参考选择]:A8、下面程序的运行结果是#include main(){ int y=10; do{y;}while (y); printf("%d\n",y); }A1B1C8D0提示:复习课程相关知识802,并完成上述题目[正确参考选择]:D9、在16位IBMPC机上使用C语言,若有如下定义struct data { int i; char ch; double f; } b; 则结构变量b占用内存的字节数是A1B2C7D11提示:复习课程相关知识802,并完成上述题目[正确参考选择]:D10、阅读以下程序及对程序功能的描述,其中正确的描述是#include main(){ FILE *in,*out; char ch,infile[10],outfile[10]; printf("Enter the infile name:\n"); scanf("%s",infile); printf("Enter the outfile name:\n"); scanf("%s",outfile); if((in=fopen(infile,"r"))==NULA程序完成将磁盘文件的信息在屏幕上显示的功能B程序完成将两个磁盘文件合二为一的功能C程序完成将一个磁盘文件复制到另一个磁盘文件中D程序完成将两个磁盘文件合并并在屏幕上输出提示:复习课程相关知识802,并完成上述题目[正确参考选择]:C二、多选题(共5题,20分)1、在C语言中,正确的int类型的常数是:______。
C语言程序设计吉大直属课程机考复习题库及答案1:根据定义和数据的输入方式,输入语句的正确形式为( )。
已有定义:float f1,f2;数据的输入方式:4.523.51.scanf(“%f,%f”,&f1,&f2);2.scanf(“%f%f”,&f1,&f2);3.scanf(“%3.2f%2.1f”,&f1,&f2);4.scanf(“%3.2f,%2.1f”,&f1,&f2);2:判断char型变量ch是否为大写字母的正确表达式是( ).1.’A’<=ch<=’Z’2.(cb>=’A’)&(ch<=’Z’)3.(ch>=’A’)&&(ch<=’Z’)4.(‘A’<=ch)AND(‘Z’>=ch)3:若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。
1.22.33.44.无确定值4:有以下定义和语句,则以下引用形式不合法的是( )。
Struct s{int i1;struct s*i2,i0;};static struct sa[3 ]={2,&a[1],’\0’,4,%a[2],&a[0],6,’\0’,&a[1]}, *ptr;ptr=a;1.ptr->i1++2.*ptr->i23.++ptr->i04.ptr->i15:以下结果为整数的表达式(设有int i;char c;float f;)( ).1.i十f2.i*c3.c十f4.i十c十f6:fwrite函数的一般调用形式是( )。
1.fwrite(buffer,count,size,fp) ;2.fwrite(fp,size,count,buffer) ;3.fwrite(fp,count,size,buffer) ;4.fwrite(buffer,size,count,fp) ;7:下面四个选项中,均是不合法转义字符的选项是( ).1.’\”’‘\\’‘\xf’2.’\1011’‘\’‘\a’3.’\011’‘\f’‘\}’4.’\abc’‘\101’‘x1f’8:若有说明:int a[][4]={0,0};则下面正确的叙述是()。
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>typedef struct student{ /*定义结构体*/char IDNumber[16];/*学号*/char FamilyName[16]; /*姓*/char GivenName[16]; /*名*/int sex; /*性别(0代表“女”,1代表“男”)*/int BirthYear; /*出生年*/int BirthMonth; /*出生月*/int BirthDay; /*出生日*/float score[4]; /*成绩*/float sum; /*总分*/float average; /*平均分*/}stu;typedef struct Lnode{student data;Lnode *next;}st, *linklist;/***************************************************************************/ struct tm* ptm;float Sumstu(linklist L);float Averstu(linklist L);float Sumstu(linklist L){ /*计算总分*/linklist s;s=L;int i;s->data.sum=0;for(i=0;i<=4;i++){s->data.sum+=s->data.score[i];}return (s->data.sum);}float Averstu(linklist L){linklist q;q=L;Sumstu(q);q->data.average=q->data.sum/4;return (q->data.average);}void TimeNow() /*获取系统时间*/{struct tm* ptm;long ts;int y,m,d,h,n,s;ts = time(NULL);ptm = localtime(&ts);y = ptm-> tm_year+1900; //年m = ptm-> tm_mon+1; //月d = ptm-> tm_mday; //日h = ptm-> tm_hour; //时n = ptm-> tm_min; //分s = ptm-> tm_sec; //秒}int Menu() /*菜单函数*/{int n;printf("\t\t\t\n\n\n\n欢迎使用学生成绩管理系统\n\n\t\t\t按任意键进入系统!");system("pause");system("cls");printf("************************************************************************* *\n");printf("\n\t\t\t学生成绩管理系统\n\t\t\t\t制作人陈光林(52101407)\n");printf("-------------------------------菜单(Menu)---------------------------------\n");printf("\n\t 1. Enter list 输入记录\n");printf(" \t 2. Delete a record from list 删除记录\n");printf(" \t 3. Print list 显示所有记录\n");printf(" \t 4. Search record on name 按照姓名查找记录\n");printf(" \t 5. Save the file 保存记录到文件中\n");printf(" \t 6. Load the file 从文件中读入记录\n");printf(" \t 7. Compute the score 计算所有学生的总分和均分\n");printf(" \t 8. Query by class 按班级查询显示学生总分\n");printf(" \t 9. Insert record to list 插入记录到表中\n");printf(" \t 0. Quit 退出系统\n");printf("---------------------------------------------------------------------------\n");printf("************************************************************************* ***\n");do{printf("\n\t\t\t 请选择你需要的操作(0—9):");scanf("%d",&n);}while(n<1||n>5); /*如果选择项不在1—9之间则重输*/return(n); /*返回选择项*/}/***************************************************************************/linklist initlist(void) /*建立一个空链表*/{linklist L=(linklist)malloc(sizeof(st));L->next=NULL;return NULL;}/*建立学生信息链表*/st *creastlist(linklist L){int i;float s;linklist p;for(;;){p=(linklist)malloc(sizeof(st)); /*开辟新的节点*/if(!p){printf("\n Out of memory.");return (L);}printf("请输入学生学号");scanf("%s",p->data.IDNumber);if(p->data.IDNumber[0]=='0') break;printf("请输入姓:");scanf("%s",p->data.FamilyName);printf("请输入名:");scanf("%s",p->data.GivenName);printf("请输入性别(0女/1男):");scanf("%d",&p->data.sex);printf("请输入生日:");scanf("%d %d %d",&p->data.BirthYear, &p->data.BirthMonth,&p->data.BirthDay);printf("请输入成绩\n",4);s=0;for(i=0;i<4;i++){do{printf("score%d:",i+1);scanf("%f",&p->data.score[i]);if(p->data.score[i]<0 || p->data.score[i]>100)printf(" Data error,please enter again.\n");}while(p->data.score[i]<0 || p->data.score[i]>100);s=s+p->data.score[i];}p->data.sum=s;p->data.average=s/4;p->next=L;L=p;}return(L);}/****************************************************************************** *****************//*void creastlist(linklist L){st *p;linklist head=NULL;p=(linklist)malloc(sizeof(st));p=L;for(;;){printf("请输入学生学号:\n");scanf("%s",p->data.IDNumber);printf("请依次输入学生姓名:\n");scanf("%s%s",p->data.FamilyName,p->data.GivenName);printf("请输入出生年月日:\n");scanf("%d%d%d",p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay);TimeNow();if(p->data.BirthYear>=ptm-> tm_year+1900){ printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthMonth>=ptm-> tm_mon+1){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else if(p->data.BirthDay>=ptm-> tm_mday){printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请输入性别(0代表女,1代表男:\n");scanf("%d",p->data.sex);if(p->data.sex!=0||p->data.sex!=1) {printf("错误!学生年龄不能为负值!请重新输入!");continue;}else{printf("请分别输入外语、高数、C语言、马哲四门成绩:\n");scanf("%f%f%f%f",&p->data.score[0],&p->data.score[1],&p->data.score[2],&p->data.score[3]);p->next=head;head=p;}}}}*//*输出所有学生的信息*/void print(linklist head){linklist p;p=head;printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");Sumstu(p);Averstu(p);while(p!=NULL){printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->dat a.GivenName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average) ;printf("\n");p=p->next;}printf("\n");}/****************************************************************************** **************/void insert(linklist L){ //插入新的结点linklist s,p=L;stu e;s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void search(linklist L){int flag=1;char familyname[16];linklist p;printf("请输入要查询的学生姓名:\n");scanf("%s",familyname);p=L->next;while(p!=NULL){if(strcmp(familyname,p->data.FamilyName)==0){system("cls");Sumstu(p);Averstu(p);printf("************************************************************************* *");printf("| 学号| 姓名|性别|出生年月日|外语C语言高数马哲|总分|平均分|");printf("--------------------------------------------------------------------------");printf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);printf("\n");flag=0;break;}elsep=p->next;}if(flag)printf("没有该学生信息或输入错误");Menu();}/****************************************************************************** *************************/void Delete(linklist L){linklist p,q;char num[16];int label=1;printf("请输入要删除的学生学号:\n");scanf("%s",num);p=L->next;q=L;do{if(strcmp(num,p->data.IDNumber)==0){system("cls");printf("\t发现要删除的学生信息,确认删除吗?\n");printf("\t\t确认(Y)取消(N)");getchar();if('y'||'Y'){q->next=p->next;delete p;printf("删除成功!");label=0;}else{exit(0);}}else{q=q->next;p=q->next;}} while(q->next!=NULL);if(label)printf("输入错误或者信息不存在!");}/****************************************************************************** ***************************/void Paixu(linklist L){linklist p;float s1=90,s2=80,s3=70,s4=60;p=L;int i;for(i=0;i<=4;i++){printf("****************************************************");printf("第%d科90分以上的学生:",i);if(p->data.score[i]>=s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s2<=p->data.score[i]<s1){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s3<=p->data.score[i]<s2){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(s4<=p->data.score[i]<s3){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}if(p->data.score[i]<s4){ printf("%s%s%s%f",p->data.IDNumber,p->data.FamilyName,p->data.GivenName, p->data.score[i]);}else{p=p->next;}}}/***************************************************************************************************//*void Query(linklist L){ //此处假设学号形式为20101407linklist p;p=L;char classs[2];float sumclass;printf("请输入您想查询的班级:\n");scanf("%s",classs);do{sumclass=p->data.score[0]+p->data.score[1]+p->data.score[2]+p->data.score[3] ;printf("%s%f",p->data.IDNumber,p->data.sum);}while((strcmp(classs[1],p->data.IDNumber[5])==0)&&(strcmp(classs[2],p->data.IDNu mber[6])==0));}/****************************************************************************** ********************/void ComputeProject(linklist L){linklist p;float sumall[4],averall[4];float Su=0,Av=0;//sumall[4]={0,0,0,0};averall[4]={0,0,0,0};int i,m=0;p=L;for(i=0;i<=4;i++){for(p=L;p->next!=NULL;p=p->next){m++;sumall[i]+=p->data.score[i];}averall[i]=sumall[i]/4;printf("第%d科的平均成绩是:\n",averall[i]);Su+=averall[i];}Av=Su/4;printf("总的平均成绩是:%f\n",Av);}/****************************************************************************** ******************/void compute(linklist L){linklist p;p=L;Sumstu(p);Averstu(p);do{printf("学号:%s\n",p->data.IDNumber);printf("总分:%f\n平均分:%f\n",p->data.sum,p->data.average);p=p->next;}while(p->next!=NULL);}/****************************************************************************** **************/void insert(linklist L, stu e){ //插入新的结点linklist s,p=L;printf("请输入要插入的学生信息:\n");scanf("%s%s%s%d%d%d%f%f%f%f%f%f",p->data.IDNumber,p->data.FamilyName,p->data.Gi venName,p->data.sex,p->data.BirthYear,p->data.BirthMonth,p->data.BirthDay,p->data.score[0],p->data.score[1],p->data.score[2],p->data.score[3],p->data.sum,p->data.average);s=(linklist)malloc(sizeof(st));s->data=e; //头插法s->next=p->next;p->next=s;}/****************************************************************************** *************/void save(linklist L){FILE *fp;linklist p; /* 定义移动指针*/char out];scanf("%s",outfile);if((fp=fopen(outfile,"w"))==NULL) /*为输出打开一个二进制文件,为只写方式*/{printf("Cannot open the file\n");return; /*若打不开则返回菜单*/}p=L; /*移动指针从头指针开始*/while(p!=NULL) /*如p不为空*/{fwrite(p,sizeof(st),1,fp); /*写入一条记录*/p=p->next; /*指针后移*/}fclose(fp); /*关闭文件*/printf("Save the !\n");}/* 从文件读数据函数*/st *Load(linklist L){linklist p1,p2,head=NULL; /*定义记录指针变量*/FILE *fp; /* 定义指向文件的指针*/char in];scanf("%s",infile);if((fp=fopen(infile,"r"))==NULL) /*打开一个二进制文件,为只读方式*/{printf("Can not open the file.\n");return(head);}printf("\nLoading the file!\n");p1=(linklist)malloc(sizeof(st)); /*开辟一个新单元*/if(!p1){printf("Out of memory!\n");return(head);}head=p1;while(!feof(fp)) /*循环读数据直到文件尾结束*/{if(fread(p1,sizeof(st),1,fp)!=1) break; /*如果没读到数据,跳出循环*/p1->next=(linklist)malloc(sizeof(st)); /*为下一个结点开辟空间*/if(!p1->next){printf("Out of memory!\n");return (head);}p2=p1; /*使p2指向刚才p1指向的结点*/p1=p1->next; /*指针后移,新读入数据链到当前表尾*/}p2->next=NULL; /*最后一个结点的后继指针为空*/fclose(fp);printf("\nYou have success to read data from the file!\n");return (L);}/****************************************************************************** **************//****************************************************************************** ***************/void main(){linklist head=initlist();for(;;){switch(Menu()){case 1 :creastlist(head);case 2 :Delete(head);case 3 :print(head);case 4 :search(head);case 5 :save(head);//case 6 :load(head);case 7 :compute(head);//case 8 : Query(head);case 9 :insert(head);case 0 :exit(0);}}}。
第一章1.选择题(1)B(2)C(3)C(4)D(5)B(6)D(7)D(8)C2.填空题(1)函数一个主函数函数(2)/**/(3)连接3.程序设计题(1)#include<stdio.h>main(){printf(" *\n");printf("* S *\n");printf(" *\n");}(2)#include<stdio.h>main(){printf("******************\n");printf("Your are welcome!\n");printf("------------------\n");}第二章1.选择题(1)D(2)D(3)B(4)C(5)B(6)C(7)C(8)C(9)D(10)C(11)A(12)B (13)A(14)C(15)A (16)B(17)A(18)B(19)C(20)A(21)C(22)C2.填空题(1)①9②- 2③62④44.8(2)①10.5②73.1③7④7.2(3)"%6x""%o""%3c""%10.3f""%8s"(4)int a,b,c;&a,&b,&ctemp=a;c=temp;(5)49613112.程序设计题(1)#include<stdio.h>main(){double a,b,c,d;double aver=0.0;printf("\nPlease input four double number:");scanf("%lf%lf%lf%lf",&a,&b,&c,&d);aver=(a+b+c+d)/4;printf("\nThe average of the four double number is %lf",aver);}(2)#include<stdio.h>#define PI 3.14159main(){double r;double area=0,len=0;printf("\nPlease input r:");scanf("%lf",&r);area=PI*r*r;len=2*PI*r;printf("\n area=%lf,length=%lf",area,len);...}(3)#include<stdio.h>main(){float i,s;printf("\nPlease input data:");scanf("%f%f",&i,&s);s=s*(1+i);printf("\nI have %.2f yuan after one year.",s);}第三章1、选择题(1)C(2)C(3)A(4)C(5)D(6)A(7)C(8)A(9)B(10)D2、填空题(1)&m,&nm=n;n=temp;m,n(2)① 5 5 4②5 5 4③ 3 3 4(3)9i+1"%d",iprintf("\n");(4)73- 543932013、程序设计题(1)#include<stdio.h>#include<math.h>main()double a,b,c,d,det,a_2,real,imag,x1,x2;printf("Please enter a,b,c:");scanf("%lf%lf%lf",&a,&b,&c);if(a==0&&b==0)printf("No root!\n");else if(a==0)printf("Line equation root is %.2lf\n",-c/b);else{d=b*b-4*a*c;det=sqrt(fabs(d));a_2=2*a;if(d<0){real=-b/a_2;imag=det/a_2;printf("The two root are:\n%.2lf+%.2lfi\n",real,imag);printf("and\n%.2lf-%.2lfi\n",real,imag);}else if(d==0)printf("Single real root is %.2lf:\n",-b/a_2);else{x1=-b/(a_2)+det/a_2;x2=-b/(a_2)+det/a_2;printf("The two real roots are :\n%.2lf\nand\n %.2lf\n",x1,x2);}}}(2)#include<stdio.h>main(){int i,j;for(i=1;i<=9;i++){for(j=1;j<=9;j++)printf("%d*%d=%2d ",i,j,i*j);printf("\n");}(3)#include<stdio.h>main(){float sum,product;int i,n,j;printf("\nEnter n\(4<=n<=20):");scanf("%d",&n);while(n>20||n<4){printf("\nEnter n again:");scanf("%d",&n);}sum=0;product=1;for(i=1;i<=n;i++){product=1;for(j=1;j<=i;j++)product=product*j;sum=sum+product;}printf("1!+2!+...+%d!=%.0f\n",n,sum);}第四章1、选择题(1)C(2)D(3)B(4)D(5)C(6)B(7)B(8)C(9)A(10)C(11)C(12)B 2、填空题(1)①int men[10] ;②float step[4]={1.9,-2.33,0,20.6};③_int grid[4][10] ;(2)①int m[10]={9,4,7,49,32,-5};②0 9③scanf("%d",m[1]);④m[0] =39;⑤m[0] =a[3]+a[5];(3)①3 ②5 ③8 ④8 ⑤9 ⑥12 ⑦9(4)①int a[10]={9,4,12,8,2,10,7,5,1,3}; ②0 9 ③8 8 (5)103、程序填空题(1)array[20]20&array[i ]20max=array[i];min=array[i];sum+array[i];sum/20(2)-5.77000021(3)ABCDEFGHIJKLEFGHIJKLABFDEFGHIJKLABFDEFGHI4、程序设计题(1)#define SIZE 100#include<stdio.h>void main(){int a[SIZE+1],i,j;for(i=2;i<=100;i++)a[i]=i;for(i=2;i<=100;i++)for(j=i+1;j<=100;j++)if(a[i]!=0&&a[j]%a[i]==0)a[j]=0;printf("\n");j=0;for(i=2;i<=100;i++){if(a[i]!=0){printf("%-4d",a[i]);j++;}if(j==10){j=0;printf("\n");}}}(2)#define S 14#include"stdio.h"void main(){int a[S][S],i,j,n;printf("please enter n:");scanf("%d",&n);for(i=1;i<=n;i++){a[i][i]=1;a[i][1]=1;}for(i=3;i<=n;i++)for(j=2;j<i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for(j=1;j<=n-i;j++)printf(" ");for(j=1;j<=i;j++)printf(" %3d",a[i][j]);printf("\n");}}(3)#define SIZE 80#include<stdio.h>void main(){char str1[SIZE+SIZE],str2[SIZE];int i,j;puts("Please enter 2 string:");scanf("%s",str1);scanf("%s",str2);i=0;while(str1[i]!='\0')i++;j=0;while(str2[j]!='\0'){str1[i]=str2[j];i++;j++;}str1[i]='\0';printf("%s\n",str1);}(4)#define SIZE 80#include<stdio.h>#include<string.h>void main(){char string[SIZE];int len,i,j,flag;long number;puts("Please enter a digital string:");scanf("%s",string);len=strlen(string);if(string[0]=='-'){flag=-1;i=1;}else{flag=1;i=0;}number=string[i]-'0';for(i++;i<len;i++)number=number*10+(string[i]-'0');number=flag*number;printf("%d\n",number);}(5)#define SIZE 40#include<stdio.h>void main(){int m,n,i,j;float price[SIZE],sum;printf("\nPlease input M and N:");scanf("%d%d",&m,&n);m=m-n;printf("Please input %d price :",n);sum=0;for(i=0;i<n;i++){scanf("%f",&price[i]);sum=sum+price[i];}printf("Aver are %10.2f.",sum/n);while(m>0){for(i=0;i<n-1;i++)price[i]=price[i+1];printf("\nPlease input one price:");...scanf("%f",&price[n-1]);m--;sum=0;for(i=0;i<n;i++){sum=sum+price[i];}printf("Aber are %10.2f",sum/n);}}第五章3.选择题(1)C(2)D(3)C(4)B(5)A(6)A(7)A (8)B(9)A(10)B(11)A(12)A 4.填空题(1)整型(2)值传递地址传递(3)全局变量局部变量(4)自动变量静态变量寄存器变量外部变量(5)自动变量(6)15300(7)8121(8)x=3,y=4,n=7(9)5 65.程序设计题(1)#include<stdio.h>int gcd_recursion(int a,int b);void main(){int i,j;puts("\nPlease enter 2 integer");scanf("%d,%d",&i,&j);if(i<0||j<0){puts("\nData Error!Please enter 2 integer"); scanf("%d, %d",&i,&j);}elseprintf("gcd(%d,%d)=%d",i,j,gcd_recursion(i,j)); }int gcd_recursion(int a,int b){ int c,d;if(a<b){c=a;a=b;b=c;if(a%b==0)return b;elsed=gcd_recursion(b,a%b);}else if(a%b==0)return b;elsed=gcd_recursion(b,a%b);return d;}(2)#include<stdio.h>int delete_char(char c,char str[]);void main(){char str[10],c,i;puts("\nPlease enter a string:");gets(str);puts("Please enter a char you want to delete:");c=getchar();puts("Before deleted:");puts(str);puts("After deleted:");i=delete_char(c,str);puts(str);printf("There are %d characters deleted.",i);}int delete_char(char c,char str[]){ int i,j,total,k,sum;i=0;total=0;while(str[i]!='\0'){k=i;sum=0;while(str[k]==c){ k++;sum++;}total=total+sum;if(str[i]==c){ for(j=i;str[j+sum]!='\0';j++)str[j]=str[j+sum];str[j]='\0';}i++;}return total;}(3)#include<stdio.h>int max(int a,int b);void main(){int i,j,k;puts("\nPlease enter 3 integer:");scanf("%d,%d,%d",&i,&j,&k);printf("max is %d.",max(max(i,j),k));}int max(int a,int b){ if(a>b)return a;elsereturn b;}(4)#include<stdio.h>void int_string(long a,char str[]);void reverse(char c[],int size);void insert_space(char c[],int size);void main(){long i;char str1[10];puts("\nPlease enter 1 long interger:");scanf("%d",&i);int_string(i,str1);printf("digital string is %s",str1);}void int_string(long a,char str[]){int i=0;while(a!=0){str[i]=a%10+'0';a=a/10;i++;}str[i]='\0';insert_space(str,i);}void insert_space(char c[],int size){int i;c[2*size-1]='\0';for(i=2*(size-1);i>=2;i-=2){c[i]=c[i/2];c[i-1]=' ';}}(5)#include<stdio.h>long facto(long x);main(){int a;long factorial;printf("\nPlease enter a integer:");scanf("%d",&a);factorial=facto(a);printf("\nThe %d's jieceng is :%ld\n",a,factorial);}long facto(long x){if(x==1)return 1;elsereturn(x*facto(x-1));}(6)#include<stdio.h>float average(float math,float chinese,float english);main(){float score[3];float aver;printf("Please enter your score:math,chinese,english\n");scanf("%f,%f,%f",&score[0],&score[1],&score[2]);aver=average(score[0],score[1],score[2]);printf("Your average is %.2f\n",aver);}float average(float math,float chinese,float english){return(math+chinese+english)/3;}(7)#include<stdio.h>float max=0,min=0;float average(float arr[],int n){int i;float aver,sum=arr[0];max=min=arr[0];for(i=1;i<n;i++){if(arr[i]>max)max=arr[i];else if (arr[i<min])min=arr[i];sum=sum+arr[i];}aver=sum/n;return(aver);}main(){float score[10], aver;int i;printf("Please enter ten score:");for(i=0;i<10;i++)scanf("%f",&score[i]);aver=average(score,10);printf("max=%.2f\nmin=%.2f\naverage=%.2f\n",max,min,aver);}(8)#include<stdio.h>int fib(int n){if((n==1||n==2))return 1;elsereturn(fib(n-1)+fib(n-2));}void main(){int i;printf("\n");for(i=1;i<20;i++){printf("%-12d",fib(i));if(i%5==0)printf("\n");}}第六章1、选择题(1)A(2)C(3)A(4)B(5)B(6)D(7)D(8)B(9)D(10)B 2、填空题(1)a=10,b=20a=20,b=10(2)**pp=603、程序设计题(1 )#include<stdio.h>char *month_name(int n);void main(){int n;printf("\nPlease enter 1 integer:");scanf("%d",&n);printf("%d month :%s\n",n,month_name(n));}char *month_name(int n){static char*name[]={"illegal month","Jan","Feb","Mar","Apr","May","Jun","July","Aug","Sept","Oct","Nov","Dec"};return ((n<1||n>12)?name[0]:name[n]);}(2)#include<stdio.h>#define N 10sort(int data[]){int i,j,min_a,temp;for(i=0;i<N;i++){min_a=i;for(j=i+1;j<N;j++)if(*(data+j)<*(data+min_a))min_a=j;if(min_a!=i){temp=*(data+min_a);*(data+min_a)=*(data+i);*(data+i)=temp;}}}main(){int i,j,data[N],temp;int min_a;printf("\nPlease input %d int:\n",N);for(i=0;i<N;i++)scanf("%d",&data[i]);sort(data);printf("After sorted:\n");for(i=0;i<N;i++)printf(" %d",data[i]);}(3)#include <stdlib.h>void reverse(char *c);void main(){char str[80];puts("Please enter 1 string\n");gets(str);reverse(str) ;puts("After reversed\n");puts(str);}void reverse(char *c){char *p,*q,temp;int size=0;for(p=c;*p!='\0';p++)size++;size=size/2;for(q=c,p--;q<c+size;q++,p--){temp=*q;*q=*p;*p=temp;}}(4)#include<stdio.h>#include<string.h>void sort(char *keyword[],int size);void print(char *keyword[],int size)void main(){char *keyword[]={"if","else","case","switch","do","whlie","for","break","continue"};sort(keyword,9);print(keyword,9);}void sort(char *keyword[],int size){int i,j,min_location;char *temp;for(i=0;i<size-1;i++){min_location=i;for(j=i+1;j<size;j++)if(strcmp(keyword[min_location],keyword[j])>0) min_location=j;if(min_location!=i){temp=keyword[i];keyword[i]=keyword[min_location];keyword[min_location]=temp;}}}void print(char *keyword[],int size){int i;for(i=0;i<size;i++)printf("\n%s",*(keyword+i));}(5)#include<stdio.h>void fun_char(char str1[],char str2[],char str3[]);void main(){char str1[80],str2[80],str3[80],c,i;printf("\nPlease enter 2 string:");scanf("%s%s",str1,str2);fun_char(str1,str2,str3);printf("Third string is %s.",str3);}void fun_char(char *str1,char *str2,char *str3){int i,j,k,flag;i=0,k=0;while(*(str1+i)!='\0'){j=0;flag=1;while(*(str2+j)!='\0'&&flag==1){if(*(str2+j)==*(str1+i)) flag=0;j++;}if(flag){*(str3+k)=*(str1+i); k++;}i++;}*(str3+k)='\0';}(6)#include<stdio.h>int count_word(char *str);void main(){char str1[80],c,res;puts("\nPlease enter a string:");gets(str1);printf("There are %d words in this sentence",count_word(str1)); }int count_word(char *str){int count ,flag;char *p;count=0;flag=0;p=str;while(*p!='\0'){if(*p==' ')flag=0;else if(flag==0){flag=1;count++;}p++;return count;}(7)#include<stdio.h>#include<string.h>char *encrypt(char *string);char *decrypt(char *string);main(){char item[80];char *point;char *pEncrypted;char *pDecrype;printf("Please enter the string need to encrypt:\n");gets(item);point=item;pEncrypted=encrypt(point);printf("\nThe string after encrypted is:\n%s\n",pEncrypted); pDecrype=decrypt(pEncrypted);printf("\nThe string after decrypted is:\n%s\n",pDecrype); free(pEncrypted);free(pDecrype);}char *encrypt(char *string){char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string-2;string++;q++;}*q='\0';return t;}char *decrypt(char *string)char *q,*t;q=(char *)malloc(sizeof(char)*80);if(!q){printf("No place to malloc!");return 0;}t=q;while(*string!='\0'){*q=*string+2;string++;q++;}*q='\0';return t;}第七章1、选择题(1)D(2)D(3)D(4)C(5)D(6)C(7)C(8)B(9)C(10)C(11)B(12)C (13)B(14)A(15)A (16)C2、程序分析题(1)Ling ning:19Langping:21Zhu jian hua:20(2 )2,65,A(3)1,2(4 )3.11000050(5 )audition time is 08:30:00(6 )99Xiaowang90873、程序设计题(1)#include<stdio.h>struct date{int day;int month;int year;}main(){int i,flag,dayth,day71;struct date d1;int month_day[]={0,31,28,31,30,31,30,31,31,30,31,30,31};day71=1;for(i=1;i<7;i++)day71=day71+month_day[i];puts("\nPlease enter year/month/day:");scanf("%d/%d/%d",&d1.year,&d1.month,&d1.day);dayth=d1.day;for(i=1;i<d1.month;i++)dayth=dayth+month_day[i];printf("%d days\n",day71-dayth);}(2)#include<stdio.h>main(){enum color{red,yellow,blue,white,black};enum color i,j,k,pri;int n,loop;n=0;for(i=red;i<=black;i++)for(j=red;j<=black;j++)if(i!=j){for(k=red;k<=black;k++)if((k!=i)&&(k!=j)){n=n+1;printf("%-4d",n);for(loop=1;loop<=3;loop++){switch(loop){case 1:pri=i;break;case 2:pri=j;break;case 3:pri=k;break;default: break;}switch(pri){case red:printf("%-10s","red");break;case yellow:printf("%-10s","yellow");break;case blue:printf("%-10s","blue");break;case white:printf("%-10s","white");break;case black:printf("%-10s","black");break;default: break;}}printf("\n");}}printf("\ntotal:%5d\n",n);}(3)#include<stdio.h>#define SIZE 5main(){struct staff{char name[20];int salary;int age;}attend[SIZE];struct staff *ap;putchar('\n');for(ap=attend;ap<attend+SIZE;ap++){printf("Please enter name salary and age:\n");scanf("%s%d%d",ap->name,&(ap->salary),&(ap->age));}for(ap=attend;ap<attend+SIZE;ap++){ap->age++;ap->salary*=(1+0.3);}for(ap=attend;ap<attend+SIZE;ap++)printf("\n%-10s %6d %3d",(ap->name),(ap->salary),(ap->age));}第八章1、选择题(1)A(2)D(3)B(4)A (5)D(6)B(7)B(8)C(9)B(10)B(11)C 2、填空题(1)#include(2)#define(3)3 5 5(4)a=4,b=13a=13,b=4(5)10(6)16(7)1000 10(8)10(9)the max value is 2(10)23、程序设计题(1)#define LETTER 1main(){ int i;char c;char str[80];printf("Please enter a string:");scanf("%s",str);i=0;while((c=str[i])!='\0'){i++;#ifdef LETTERif(c>='a'&&c<='z')c=c-32;#elseif(c>='A'&&c<='Z')c=c+32;#endifprintf("%c",c);printf("%d",(int)c);}}(2 )#include<stdio.h>#include "d:188011.c"#include "d:188012.c"#include "d:188013.c"int fmax(int x,int y,int z);int fmin(int x,int y,int z);int faver(int x,int y,int z);main(){int a,b,c;int max=0;int min=0;int average=0;printf("Please enter three number:");scanf("%d,%d,%d",&a,&b,&c);max=fmax(a,b,c);min=fmin(a,b,c);average=faver(a,b,c);printf("The max of the three number is: %d.\n",max);printf("The min of the three number is: %d.\n",min);printf("The average of the three number is %d.\n",average);}/*188011.c*/int fmax(int x,int y,int z){ int max;max=x;if(x<y) max=y;if(max<z)max=z;return(max);}/*188012.c*/int fmin(int x,int y,int z)...{ int min=x;if(min>y){min=y;if(min>z)min=z;}elsereturn min;}/*188013.c*/int faver(int x,int y,int z){int aver=0;aver=(x+y+z)/3;return aver;}第九章6.选择题(1)D(2)C(3)C(4)B(5)C(6)C(7)D(8)C(9)A(10)B 7.填空题(1)位逻辑运算移位运算(2)逻辑非(3)零(4)复合赋值(5)右对齐1(6)整8.程序设计题(1)#include<stdio.h>main(){unsigned a,b,c,d;puts("Please enter a:\n");...scanf("%o",&a);b=a>>4;c=~(~0<<4);d=b&c;printf("%o,%d\n%o,%d\n",a,a,d,d);}(2)struct bitsample{unsigned a: 2;unsigned b: 2;unsigned c: 2;int x:0;unsigned d: 4;unsigned f: 7;};第十章1、选择题(1)B(2)B(3)C(4)B(5)C(6)D(7)A (8)D(9)A (10)C(11)C(12)A 2、填空题(1)fputc('A',fp);fputs("Hello!",fp);(2)fscanf(fp,"%d,%d,%d",&a,&b,&c);(3)"r""w""a"3、程序填空题#include<stdio.h>score.txti+1"%s",namescanf("%d",&age);scanf("%f",&score);"%s,%d,%f\n"fclose(fp);...4、程序设计题(1 )#include<stdio.h>void main(){FILE *fp;char c;if((fp=fopen("d:\\write\\tc\\text1.txt","r"))==NULL){printf("can't open the file\n");exit(1);}else{for(c=getc(fp);c!=EOF;c=fgetc(fp))putchar(c);fclose(fp);}}(2 )#include<stdio.h>void main(){char b[10];FILE *f;int i;if((f=fopen("d:\\write\\tc\\file1.txt","rb"))==NULL)exit(0);else if(fread(b,1,10,f)!=10)printf("file read error!\n");for(i=0;i<=9;i++)printf("%c ",b[i]);fclose(f);}(3 )#include<stdio.h>void main(){char str[]="Welcome you";char display[15];FILE *fp;char c;if((fp=fopen("d:\\write\\tc\\file2.txt","w+"))==NULL) {puts("cannot open the file\n");exit(1);}else{ fputs(str,fp);rewind(fp);fgets(display,15,fp);puts(display);fclose(fp);}}(4 )#include<stdio.h>void main(){FILE *fp;char ch,filename[10];puts("please enter the filename:");scanf("%s",filename);if((fp=fopen(filename,"w"))==NULL){puts("cannot open the file\n");exit(0);}ch=getchar();while(ch!='*'){fputc(ch,fp);putchar(ch);ch=getchar();}fclose(fp);}。