《C程序设计》第11章练习题
国家开放大学C语言程序设计章节测试参考答案
国家开放大学《C语言程序设计》章节测试参考答案第一章C语言概述自测练习一:C语言字符集自测练习1.在C语言字符集中,包含有全部26个英文大写字母和对应的小写字母。
(√)2.在C语言字符集中,一个大写英文字母和它的小写英文字母被视为不同的字符。
(√)3.在C语言程序中,ABC和abc被作为同一标识符使用。
(×)自测练习二:C语言字符集自测练习1.在C语言中,保留字是有专门含义和作用的,不能作为一般标识符使用。
(√)2.在C语言中,作为标识符的第一个字符只能是英文字母或下划线,不能是数字字符。
(√)3.C语言中使用的字符常量,其起止标记符是()。
a. 双引号b. 尖括号c. 单引号d. 中括号4.C语言中使用的字符串常量,其起止标记符是()。
a. 双引号b. 中括号c. 尖括号d. 单引号自测练习三:C语句分类自测练习1.在C语言中,一条简单语句的结束符是()。
a. 分号b. 空格c. 冒号d. 逗号2.在C语言中,每条复合语句的开始标记字符为()。
a. <b. [c. (d. {3.不符合C语言规定的复合语句是()。
a. {x=0;}b. {}c. {;}d. {y=10}4.C语言中的选择类语句有两条,它们是()。
a. else和caseb. if和switchc. if和elsed. switch和case自测练习四:函数分类与使用自测练习1.在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为()。
a. nameb. mainc. MAINd. function2.C语言程序中的基本功能模块为()。
a. 标识符b. 函数c. 表达式d. 语句3.一个函数定义所包含的两个部分是()。
a. 函数头和函数体b. 函数原型和函数体c. 函数名和参数表d. 函数头和函数尾4.一个程序文件开始使用的每条预处理命令,其首字符必须是()。
a. #b. @c. %d. $5.在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对()。
C语言程序设计第九-十一章习题参考答案
C语言第九章参考答案1.选择题:12345 67890 12ADCDB BCDDC BB2.填空题:(1)指针或者地址(2)110(3)①char *p; ②p=&ch; ③scanf("%c",p); ④*p='a'; ⑤printf("%c",*p);(4)10 (5)0、7 (6)ab (7)abcdcd (8) 7ㄩ1(9)void (*p)(int * ,int*); (10)r+b[k] (11) '\0' 、n++; (12)aegi 3.改错题:(1) 第一处改正:* sub=x-y第二处改正:scanf("%f%f",&x,&y);第三处改正:calc(x,y,&add,&sub);(2)第一处:char swap (char *p1,char*p2)改为void swap (char *p1,char*p2)第二处:strcpy(p,p1)改为strcpy(p,p2)(3)第一处:p1=p1+m改为p1=p1+m-1第二处:*p1=*p2改为*p2=*p1第三处:*p2="\0"改为*p2='\0'(4)第一处:char *fun(char *str,char t)改为char *fun(char *str,char *t)第二处:s=NuLL改为s=NULL;第三处:if(r==p)改为if(*r==*p)(5)第一处:fun(int **b,int n)改为fun(int (*b)[N],int n)第二处:b[j][k]=k*j 改为b[j][k]=(k+1)*(j+1)4编程题(1)/*习题9-4-1 */void move(int array[20],int n,int m) ;main(){ int number[20],n,m,i;printf("How many numbers?"); /*共有多少个数*/scanf("%d",&n);printf("Input %d numbers:\n",n); /*输入n个数*/for(i=0;i<n;i++)scanf("%d",&number[i]);printf("How many place you want to move?"); /*后移多少个位置*/scanf("%d",&m);move(number,n,m); /*调用move函数*/ printf("Now,they are:\n");for(i=0;i<n;i++)printf("%d ",number[i]);}void move(int array[20],int n,int m) /*循环后移函数*/{ int *p,array_end;array_end=*(array+n-1);for(p=array+n-1;p>array;p--)*p=*(p-1);*array=array_end;m--;if(m>0) move(array,n,m); /*递归调用,当循环次数m减至0时,停止调用*/}(2)/*习题9-4-2 */#include<stdio.h>#include<string.h>#define TOTAL 6int mseek(char*str[],char xstr[],int n){ int i;for(i=0; i<n; i++){ if(strcmp(str[i],xstr)==0)return 1;}return 0;}main(){ char*name[TOTAL]={"Lining","Linshan","Tianyuan","Zhangqiang","Haipo","Fangbing"};char xname[20];printf("enter a name:");gets(xname);if(mseek(name,xname,TOTAL))printf("Found!\n");elseprintf("Not found!\n");}(3)/*习题9-4-3 */#include <stdio.h>#include <string.h>void fun(char *str,int num[4]){ int i;for(i=0; i<4; i++) num[i]=0;while(*str!='\0'){ if(*str>='a' && *str<='z' || *str>='A' && *str<='Z')num[0]++;else if(*str==' ')num[1]++;else if(*str>='0' && *str<='9')num[2]++;elsenum[3]++;str++;}}#define N 80main(){ int string[N];int n[4],i;gets(string);fun(string,n);for(i=0; i<4; i++)printf("%d\t",n[i]);}(4)/*习题9-4-4 *//* 调试时,可这样输入数据:*//*11 12 13 14 1521 22 23 24 2531 32 33 34 3541 42 43 44 4551 52 53 54 55 */#include <stdio.h>main(){ int a[5][5],*p,i,j;void change(int *p);printf("Input matrix:\n");for(i=0;i<5;i++) /*输入矩阵*/for(j=0;j<5;j++)scanf("%d",&a[i][j]);p=&a[0][0]; /*使p指向0行0列元素*/ change(p); /*调用函数, 实现交换*/ printf("Now, matrix: \n");for(i=0;i<5;i++) /*输出已交换的矩阵*/{ for(j=0;j<5;j++)printf("%4d",a[i][j]);printf("\n");}}void change(int *p) /*交换函数*/{ int i,j,temp;int *pmax,*pmin;pmax=p;pmin=p;for(i=0;i<5;i++) /*找最大值和最小值的地址,并赋给pmax,pmin*/ for(j=0;j<5;j++){ if(*pmax<*(p+5*i+j)) pmax=p+5*i+j;if(*pmin>*(p+5*i+j)) pmin=p+5*i+j;}temp=*(p+12); /*将最大值换给中心元素*/*(p+12)=*pmax;*pmax=temp;temp=*p; /*将最小值换给左上角元素*/*p=*pmin;*pmin=temp;pmin=p+1;for(i=0;i<5;i++) /*找第二最小值的地址赋给pmin*/ for(j=0;j<5;j++)if(((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j))) pmin=p+5*i+j;temp=*pmin; /*将第二最小值换给右上角元素*/*pmin=*(p+4);*(p+4)=temp;pmin=p+1;for(i=0;i<5;i++) /*找第三最小值的地址赋给pmin*/ for(j=0;j<5;j++)if(((p+5*i+j)!=(p+4))&&((p+5*i+j)!=p)&&(*pmin>*(p+5*i+j)))pmin=p+5*i+j; /*将第三最小值换给左下角元素*/ temp=*pmin;*pmin=*(p+20);*(p+20)=temp;pmin=p+1;for(i=0;i<5;i++) /*找第四最小值的地址赋给pmin*/ for(j=0;j<5;j++)if(((p+5*i+j)!=p)&&((p+5*i+j)!=(p+4))&&((p+5*i+j)!=(p+20))&&(*pmin>*(p+5*i+j))) pmin=p+5*i+j;temp=*pmin; /*将第四最小值换给右下角元素*/*pmin=*(p+24);*(p+24)=temp;}(5)/*习题9-4-5 *//*可以专门编写一个函数求各学生的平均分,存到aver[4]数组*/#include <stdio.h>void avcour1(float score[][5]);void fali2(int num[4],float score[4][5]);void good(int num[4],float score[4][5]);main(){int i,j,num[4];//数组num代表学号float score[4][5];printf("Input NO. and scores: \n");for(i=0;i<4;i++){ printf("NO.");scanf("%d",&num[i]);printf("scores:");for(j=0;j<5;j++)scanf("%f",&score[i][j]);}printf("\n\n");avcour1(score); /*求出第一门课的平均成绩*/ printf("\n\n");fali2(num,score); /*找出2门课不及格的学生*/printf("\n\n");good(num,score); /*找出成绩好的学生*/}void avcour1(float score[][5]) /*第一门课的平均成绩的函数*/{ int i;float sum,average1;sum=0.0;for(i=0;i<4;i++)sum=sum+score[0][i]; /*累计每个学生的得分*/ average1=sum/4; /*计算平均成绩*/printf("course 1 average score: %6.2f. \n",average1);}void fali2(int num[4],float score[4][5])/*找两门以上课程不及格的学生的函数*/{ int i,j,k,label;float sum=0;printf("= = = = = = = =Student who is fail = = = = = = = = = = = =\n");printf(" NO.");for(i=0;i<5;i++)printf("%10d",i+1);printf(" average\n");for(i=0;i<4;i++){ label=0;for(j=0;j<5;j++)if((score[i][j])<60.0) label++;if(label>=2){ printf("%5d",num[i]);for(k=0;k<5;k++){ printf("%10.2f",score[i][k]);sum+=score[i][k];}printf("%10.2f\n",sum/5);}}}void good(int num[4],float score[4][5])/*找成绩优秀的学生(各门85分以上或平均90分以上)的函数*/ { int i,j,k,n;float sum=0,aver[4];printf("= = = = = = = =Student whose score is good= = = = = = = =\n");printf(" NO.");for(i=0;i<5;i++)printf("%10d",i+1);printf(" average\n");for(i=0;i<4;i++){ n=0;sum=0;for(j=0;j<5;j++){if((score[i][j])>85.0) n++;sum+=score[i][j];}aver[i]=sum/5;if((n==5)||(aver[i]>=90)){ printf("%5d",num[i]);for(k=0;k<5;k++)printf("%10.2f",score[i][k]);printf("%10.2f\n",aver[i]);}}}(6)/*习题9-4-6*/#include <math.h>double sigma(double (*fn)(double),double l,double u){ double sum=0,d;for(d=l; d<u; d+=0.1)sum+=fn(d);return sum;}void main(){ double sum;sum=sigma(sin,0.1,1.0);printf("sum of sin from 0.1 to 1.0 is: %f\n",sum);sum=sigma(cos,0.5,3.0);printf("sum of cos from 0.5 to 3.0 is: %f\n",sum);}(7)/*习题9-4-7 */main(){ int i;char *month_name(int n);printf("input Month No.:\n");scanf("%d",&i);printf("Month No.:%2d --> %s\n",i,month_name(i)); /*调用指针函数month_name()*/ }char *month_name(int n)/*定义一个指针函数month_name(),返回一个指向字符串的指针*/{ static char *name[]={"Illegal Month","January", "February", "March", "April","May", "June", "July", "August","September", "October", "November", "December"};return((n<1||n>12)?name[0]:name[n]);}(8)/*习题9-4-8 */#include <stdio.h>#include <string.h>#define N 10main(){ void sort(char *p[]);int i;char *p[N],str[N][20];for(i=0;i<N;i++)p[i]=str[i]; /*将第i个字符串的首地址赋予指针数组p的第i个元素*/ printf("Input strings:\n");for(i=0;i<N;i++)scanf("%s",p[i]);sort(p);printf("Now, the sequence is:\n");for(i=0;i<N;i++)printf("%s\n",p[i]);}void sort(char *p[]){ int i,j;char *temp;for(i=0;i<N-1;i++)for(j=0;j<N-1-i;j++)if(strcmp(*(p+j),*(p+j+1))>0){ temp=*(p+j);*(p+j)=*(p+j+1);*(p+j+1)=temp;}}(9)/*习题9-4-9 */#include <stdio.h>#define LINEMAX 20 /*定义字符串的最大长度*/main(){ void sort(char **p);int i;char **p,*pstr[5],str[5][LINEMAX];for(i=0;i<5;i++)pstr[i]=str[i]; /*将第i个字符串的首地址赋予指针数组pstr的第i 个元素*/printf("Input 5 strings:\n");for(i=0;i<5;i++)scanf("%s",pstr[i]);p=pstr;sort(p);printf("strings sorted:\n");for(i=0;i<5;i++)printf("%s\n",pstr[i]);}void sort(char **p) /*冒泡法对5个字符串排序的函数*/ { int i,j;char *temp;for(i=0;i<5;i++){ for(j=i+1;j<5;j++){ if(strcmp(*(p+i),*(p+j))>0) /*比较后交换字符串地址*/{ temp=*(p+i);*(p+i)=*(p+j);*(p+j)=temp;}}}}(10)void StrOR(char xx[][80],int maxline){ int i,righto,j,s,k;char temp[80];for(i=0; i<maxline; i++)for(j=strlen(xx[i])-1; j>=0; j--){ k=0; memset(temp,0,80);if(xx[i][j]=='o'){ righto=j;for(s=righto+1; s<strlen(xx[i]); s++)temp[k++]=xx[i][s];for(s=0;s<righto;s++)if(xx[i][s]!='o') temp[k++]=xx[i][s];strcpy(xx[i],temp);}else continue;}}C语言第十章参考答案1. 选择dccda cab2..填空(1)struct studentstrcmp(str,stu[i].name)==0break;(2)p=personp-person<3old=p->age;q->name,q->age(3)p!=NULLc++p->next(4)&per[i].body.eye&per[i].body.f.height&per[i].body.f.weight3.编程题(1)#include <stdio.h>struct data{ int year;int month;int day;};main(){ struct data a;int monthnum[12]={31,28,31,30,31,30,31,31,30,31,30,31};int i,sum=0;scanf("%d%d%d",&a.year,&a.month,&a.day);for(i=0;i<a.month-1;i++)sum+=monthnum[i];sum+=a.day;if(a.year%4==0 && a.year%100!=0 ||a.year%400==0)sum+=1;printf("%d年%d月%d日is the %d day",a.year,a.month,a.day,sum); }(2)#include <stdio.h>#include <stdlib.h>struct study{ float chinese;float maths;float english;float avg;};main(){ struct study student;scanf("%f%f%f",&student.chinese,&student.maths,&student.english);student.avg=(student.chinese+student.maths+student.english)/3;printf("average score is %f\n",student.avg);}(3)#include <stdio.h>#include <stdlib.h>struct study{ int num;float chinese;float maths;float english;float avg;};main(){ struct study s[3];struct study *p;for(p=s;p<s+3;p++){ scanf("%d%f%f%f",&(p->num),&(p->chinese),&(p->maths),&(p->english));p->avg=(p->chinese+p->maths+p->english)/3;}for(p=s;p<s+3;p++)printf("%d %3.1f %3.1f %3.1f %3.1f\n",p->num,p->chinese,p->maths,p->english,p->a vg);}(4)#include <stdio.h>#include <string.h>#define N 3typedef struct{char dm[5]; /*产品代码*/char mc[11]; /* 产品名称*/int dj; /* 单价*/int sl; /* 数量*/long je; /* 金额*/} PRO;void SortDat(PRO sell[],int n){ int i,j;PRO xy;for(i=0; i<N-1; i++)for(j=i+1; j<N; j++)if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je) { xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}void main(){ PRO sell[N];int i;for(i=0; i<N; i++){scanf("%s%s",sell[i].dm,sell[i].mc); //可这样输入,如:101 aaascanf("%d%d",&sell[i].dj,&sell[i].sl); //可这样输入,如:10 20sell[i].je=sell[i].dj*sell[i].sl;}SortDat(sell,N);printf("dm\t\tmc\t\tdj\tsl\tje\n");for(i=0; i<N; i++){printf("%s\t\t%s\t\t%d\t%d\t%ld\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);}}(5)#include <stdio.h>#include <stdlib.h>main(){int *pi;int i,j,t,n;printf("输入整数个数:");scanf("%d",&n);pi=(int *)malloc(n*sizeof(int));printf("输入整数:");for(i=0; i<n; i++)scanf("%d",&pi[i]);for(i=0; i<n-1; i++)for(j=i+1; j<n; j++)if(pi[i]>pi[j]){t=pi[i]; pi[i]=pi[j]; p i[j]=t;}for(i=0; i<n; i++)printf("%d ",pi[i]);printf("\n");free(pi);}#include <stdio.h>#include <stdlib.h>struct stu{ int num;char name[20];int age;struct stu *next;};void list(struct stu *head){ struct stu *p;printf("The list records are:\n");p=head;if(head!=NULL)do{ printf("%d\t%s\t%d\n",p->num,p->name,p->age);p=p->next;}while(p!=NULL);elseprintf("The list is null");}struct stu * insert(struct stu *head,struct stu *stud){ struct stu *p0,*p1,*p2;p1=head; /*p1指向链表第一个节点*/ p0=stud; /*p0指向要插入的节点*/if(head==NULL) /*原链表是空表*/{ head=p0;p0->next=NULL; /*p0作为头指针*/ }else{ while((p1!=NULL)&&(p0->num>=p1->num)){ p2=p1;p1=p1->next;} /*p1指针后移*/if(p1!=NULL){ if(head==p1) head=p0;/*插入链表开头*/else p2->next=p0; /*插入到p2节点之后*/p0->next=p1;}else{ p2->next=p0;p0->next=NULL;}/*插入到最后*/return head;}main(){ struct stu *newstu,*head;head=NULL;int num;scanf("%d",&num);while(num!=0){ newstu=(struct stu *)malloc(sizeof(struct stu));newstu->num=num;scanf("%s",newstu->name);scanf("%d",&newstu->age);head=insert(head,newstu);scanf("%d",&num);}list(head);}(7)#include <stdio.h>void partition(unsigned long int num){ union a{ unsigned short int part[2];unsigned long int w;}n,*p;p=&n;n.w=num;printf("long int=%lx\n",num);printf("low part num=%0x,high part num=%0x\n",p->part[0],p->part[1]); }main(){ unsigned long int x;x=0x23456789; //这是为了调试方便,应改为scanf函数partition(x);}C语言第十一章参考答案一、选择1.B2.A3.B4.C5.B6.C7.D8.C9.C、D 10.A 11.A 12.C 13.B二、填空1 :fopen(fname,"w")ch2:"r"fgetc(fp) 或getc(fp)3:"bi.dat"&jfp4:==NULLflag==1s[strlen(s)-1]=='\n'三、改错题1:第一处改为:long num=0;第二处改为: !feof(fp) 或!=0改为==02: 第一处改为:rewind(fp)第二处改为: fgetc(fp)!= '\n' '\0'后面加上&& feof(fp)!=1四、编程题(1)#include<stdio.h>#include <stdlib.h>#include <string.h>main(){FILE *fp;char str[100];int i=0;if((fp=fopen("myfile","w"))==NULL){ printf("Can not open the file.\n");exit(0);}printf("Input a string:\n");gets(str);while(str[i]!='!'){ if(str[i]>='a'&& str[i]<='z')str[i]=str[i]-32;fputc(str[i],fp);i++;}fclose(fp);fp=fopen("myfile","r");fgets(str,strlen(str)+1,fp);printf("%s\n",str);fclose(fp);}(2)#include<stdio.h>struct student{ char num[10];char name[8];int score[3];float ave;}stu[5];main(){int i,j,sum;FILE *fp;for(i=0;i<5;i++){ printf("\nInput score of student %d:\n",i+1);printf("NO.:");scanf("%s",stu[i].num);printf("name:");scanf("%s",stu[i].name);sum=0;for(j=0;j<3;j++){ printf("score %d:",j+1);scanf("%d",&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}fp=fopen("stud","w");for(i=0;i<5;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stud","r");for(i=0;i<5;i++){ fread(&stu[i],sizeof(struct student),1,fp);printf("%s,%s,%d,%d,%d,%6.2f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);}}(3)#include<stdio.h>#include <stdlib.h>main(){char s[80];int a;FILE *fp;if((fp=fopen("test","w"))==NULL){ printf("Cannot open file.\n");exit(1);}fscanf(stdin,"%s%d",s,&a); //相当于scanffprintf(fp,"%s %d",s,a);fclose(fp);if((fp=fopen("test","r"))==NULL){ printf("Cannot open file.\n");exit(1);}fscanf(fp,"%s %d",s,&a);fprintf(stdout,"%s %d\n",s,a); //相当于printf fclose(fp);}(4)#include<stdio.h>#include <stdlib.h>main(){FILE *fp;int i,j,n,i1;char c[100],t,ch;if((fp=fopen("A","r"))==NULL){printf("Can not open the file.\n");exit(0);}printf("\nfile A:\n");for(i=0;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);}fclose(fp);i1=i;if((fp=fopen("B","r"))==NULL){ printf("\n Can not open the file.");exit(0);}printf("\nfile B:\n");for(i=i1;(ch=fgetc(fp))!=EOF;i++){c[i]=ch;putchar(c[i]);}fclose(fp);n=i;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(c[i]>c[j]){ t=c[i];c[i]=c[j];c[j]=t;}printf("\n file C:\n");fp=fopen("c","w");for(i=0;i<n;i++){ putc(c[i],fp);putchar(c[i]);}fclose(fp);}(5)#include<stdio.h>main(){FILE *fp1,*fp2;char ch;fp1=fopen("file1.c","r");fp2=fopen("file2.c","w");ch=fgetc(fp1);while(!feof(fp1)){putchar(ch);ch=fgetc(fp1);}rewind(fp1);while(!feof(fp1))fputc(fgetc(fp1),fp2);fclose(fp1);fclose(fp2);}(6)#include<stdio.h>main(){FILE *fp; long position;fp=fopen("data.txt","w");position=ftell(fp);printf("position=%ld\n",position);fprintf(fp,"Sample data\n");position=ftell(fp);printf("position=%ld\n",position);fclose(fp);}第12章1.选择题(1)D (2)C (3)D (4)D (5)C(6)D (7)D (8)B (9)A (10).C2.填空题(1) //(2) public、private 、protected(3) 函数类型类名::函数名(形参表列) 或类型类名::函数名(参数表)(4) 内联函数(5) 构造函数(6) 类名, 创建对象时(7) 私有(8) 私有(9) 基类的构造函数成员对象的构造函数派生类本身的构造函数3.概念题(1)答:本质差别是C++是面向对象的,而C语言是面向过程的。
CPrimer 第11章泛型算法课后习题答案
第11章-泛型算法1.algorithm头文件定义了一个名为count的函数,其功能类似于find。
这个函数使用一对迭代器和一个值做参数,返回这个值出现的次数的统计结果。
编写程序读取一系列int型数据,并将它们存储到vector对象中然后统计某个指定的值出现了多少次。
// 11.17_11.1_int_to_vector_count.cpp : 定义控制台应用程序的入口点。
//#include"stdafx.h"#include<vector>#include<iostream>#include<algorithm>using namespace std;int _tmain(int argc, _TCHAR* argv[]){cout << "\tInput some int numbers ( ctrl + z to end):\n\t ";vector<int> iVec;int iVal;while ( cin >> iVal )iVec.push_back( iVal );cout << "\n\tInput a num to search in the iVec: ";cin.clear();cin >> iVal;int iCnt = 0;if ( iCnt = count( iVec.begin(), iVec.end(), iVal )){cout << "\n\tThe value " << iVal << " occurs " << iCnt << " times." << endl;}system("pause");return 0;}2.重复前面的程序,但是,将读入的值存储到一个string类型的list对象中。
智慧树知到《计算概论之C程序设计》章节测试答案
第1章单元测试l、世界上第一代计算机被叫做:答案:电子管计算机2、第一次数学危机源自对哪个问题的讨论答案:有些量无法用整数表达3、第二次数学危机源自对哪个问题的讨论?答案:微积分中的无穷小4、第三次数学危机源自对哪个问题的讨论?答案:集合定义的完备性5、图灵机模型的提出者是?答案:图灵6、十进制123对应的二进制表示是?答案:正确7、如下哪个是电子管的特点?答案:容易损坏,寿命短8、如下哪个是晶体管的特点?答案:主要原料是硅9、如下哪个是集成电路的特点?答案:体积小10、如下哪个是当前量子计算机的特点?答案:能进行并行运算11、导致CPU不能造得更大的主要原因是?答案:散热原因12、如下哪个部分不是冯诺伊曼计算机的组成部分?答案:读写头13、如下那种存储器的处理速度更快?答案:寄存器14、下列哪个关于CPU旨令集的说法是错误的?答案:指令集包含的指令数目越多,CPUi运算速度越快15、下列哪个关于程序执行的说法是错误的?答案:用高级语言编写的程序,不经过编译也能够运行第2章单元测试l、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
题目1实现冒泡排序(程序抄写题)答题地址:<alianxi/18/</a> 请完全按照如下的程序书写代码,并在书写的过程中体会优秀的代码风格:答案:5ef83 68afl 63 74cabef8e5ae3ee3 9c43 74a3 6a4c52b4b560bc8fc 1Oca47 a66052、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
题目2整数的个数答题地址:<alianxi/22/</a>答案:5ef8368afl 63 74cabef8e5ae3ee39c43 74a36a4c52b4b560bc8fc 1Oca47a6605第3章单元测试l、答题说明:请大冢到指定答题地址答题,提交代码并通过测试后,会得到通过码的下载地址,将文件下载下来用记事本打开即得到通过码,将通过码对应的选项选出即可。
浙江农林大学C语言程序设计习题集答案
第1~3章C语言概述、算法、数据类型、运算符与表达式一、选择题ACDCB CCDCB D二、填空题1、n=202、a=66,b=E第4章顺序程序设计一、选择题BAAD二、程序阅读1、12 240 122、2,3,2,23、0三、编程1#include <stdio.h>#include <math.h>void main(){float a,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f,b=%f,c=%f,area=%f",a,b,c,area);}2#include <stdio.h>#include <math.h>void main(){float a,b,c,del,x1,x2;scanf("%f,%f,%f",&a,&b,&c);del=b*b-4*a*c;if (del>=0){x1=(-b+sqrt(del))/(2*a);x2=(-b-sqrt(del))/(2*a);printf("x1=%f,x2=%f",x1,x2);}elseprintf("没有实根");}3#include <stdio.h>void main(){int c,f;c=26;f=9.0/5.0*c+32;printf("%d的华氏温度是%d",c,f);}第5章选择结构程序设计一、选择题DBBCDC二、程序阅读1、|a|+|b|=612、PQ3、-14、60~9060error!5、0,16、x+y+z=15三、编程1#include <stdio.h>void main(){int a,b,c,min;scanf("%d,%d,%d",&a,&b,&c);min=a;if (min>b) min=b;if (min>c) min=c;}2#include <stdio.h>void main(){int a;scanf("%d",&a);if(a%3==0 && a%5==0 && a%7==0)printf("yes");elseprintf("no");}3#include <stdio.h>#include <math.h>void main(){float x,y;scanf("%f",&x);if (x<0)y=fabs(x);else if(x>=0 && x<=2)y=sqrt(x+1);else if (x>=2 && x<4)y=pow(x+2,3);elsey=2*x+5;printf("x=%f,y=%f",x,y);}4#include <stdio.h>void main(){float rate,tax,salary;scanf("%f",salary);if(salary<=850)rate=0;else if(salary>1350 && salary<=2850)rate=0.1;else if(salary>2850 && salary<5850)rate=0.15;elserate=0.2;tax=rate*(salary-850);printf("salary=%f,rate=%f,tax=%f",salary,rate,tax);}5#include <stdio.h>void main(){int a,b,sum,n;scanf("%d,%d",a,b);sum=a*a+b*b;if(sum>100){n=sum/100;printf("a*a+b*b=%d,n=%d",sum,n);}elseprintf("a*a+b*b=%d",sum);}第6章循环控制一、填空题:1、222、233、464、117二、选择题:1.C2.D3.B4.B5.B6.C7.C8.C9.B 10.D三、程序阅读:1、输出:332、输出:243、2#4#7#11#16#4、3#2#0#0#1#5、B,A,D,C6、D,A,B,C7、B,C,A,D8、A,D,D,C9、C,C,A10、B,D,A11、A,D,C四、编程1.#include <stdio.h>#include <math.h>void main(){ int x;printf("x sqrt(x)\n");for(x=5;x<=1000;x++)printf("%d %f\n", x, sqrt(x));}2.#include<stdio.h>#include<math.h>main(){int i,flag;double pi,item;i=1;flag=1;pi=0;item=1.0;while(fabs(item)>=0.00001){ item=flag*1.0/i;pi=pi+item;flag=-flag;i=i+2;}pi=pi*4;printf("pi=%f",pi);}3.教材126页例6.84.#include<stdio.h>main(){ int i,num1,num2,num3;num1=1;num2=1;printf("%d %d ",num1,num2);for(i=3;i<=10;i=i+1){num3=num1+num2;printf("%d ",num3);num1=num2;num2=num3;}}第7章数组一、选择题:1. D2.D3.A4.C5.C6.C7.D8.B9.D 10.B 11.D 12.D13.D 14.A 15.B二、程序阅读:1、A,B,B,D2、C,D,A,B4、D,C,A5、C,D6、C,A7、1#2#3#1#1#38、298三、编程:1、#include <stdio.h>void main( ){int mark, a, p, f;a = p = f = 0;printf("Enter scores:");scanf ("%d", &mark);while (mark >0){if(mark >= 85) a++;else if (mark >= 60) p++;else f++;scanf ("%d", &mark);}printf(">=85:%d\n", a);printf("60-84:%d\n", p);printf("<60:%d\n", f);}2、#include <stdio.h>void main( ){ int a[10],count=0,i;float average,sum=0;for(i=0;i<10;i++){ scanf("%d",&a[i]);sum=sum+a[i];}average=sum/10;for(i=0;i<10;i++)if(a[i]>average) count=count+1;printf("平均值为%f 大于平均值的数有%d个",average,count); }3.#include<stdio.h>main( ){ int a[10];printf(“请输入一个正整数n(1<n≤10):”);scanf(“%d”,&n);printf(“请输入数据:”);for (i=0; i<n; i++)scanf("%d",&a[i]);printf("\n");for (j=0; j<n-1; j++) /*确定基准位置*/for(i=j+1; i<n; i++)if (a[j]>a[i]){ t=a[j];a[j]=a[i];a[i]=t; }printf("The sorted numbers: \n");for (i=0; i<n; i++)printf("%d",a[i]);}4.#include <stdio.h>void main(){int a[6][6],n,i,j,x,y,max;printf(“请输入一个正整数n(1≤n≤6):”);scanf(“%d”,&n);printf(“请输入一个n行n列的矩阵:\n”);for (i=0;i<n;i++)for (j=0;j<n;j++)scanf(“%d”,&a[i][j]);max=a[0][0]; x=0;y=0;for (i=0;i<n;i++)for (j=0;j<n;j++)if (fabs(a[i][j])>max) {max=a[i][j];x=i;y=j;}printf(“绝对值最大的元素为:%d,下标分别为:%d,%d\n”,max,x,y); }第8章函数一、选择题(1) A(2) B(3) C(4) B(5) A(6) C(7)i. Bii. Diii. A真诚为您提供优质参考资料,若有不当之处,请指正。
C语言程序设计各章练习题
C语言程序设计各章练习题《C 语言程序设计》各章练习题2016年12月汇编第1-3章 C 语言基础、编程规范、顺序结构程序设计编程题1:设a 和b 均为int 型变量,编写一个程序,通过键盘读入a,b 的值,然后交换a,b 的值。
要求屏幕显示“输入2个整数,用空格隔开”的提示语句,并且输出交换前a,b 的值,交换后a,b 的值。
附加要求:(1)允许定义第3个变量,实现交换;(2)不允许定义第3个变量,实现交换。
第4章选择结构程序设计编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎪⎩⎪⎪⎨⎧>=<+-=0020212x x x x x y编程题2:根据下列函数关系写程序,要求提示输入x 的值,输出y 的值。
⎪⎩⎪⎨⎧>≤≤--<=002222x x x x x y编程题3:求 ax 2+bx+c=0方程的解。
(只输出b 2-4ac>=0的求解结果,小于0,输出“不予求解!”)第5章 循环结构程序设计编程题4:编程计算∑=ni i 1。
要求提示键盘输入n ,如n 为负数,不予计算,直接返回。
编程题5:编程序计算n !,要求n 从键盘输入,如n 小于0,不予计算。
编程题6:从键盘输入一个数n ,判断n 是否是素数。
编程题6:编写程序输出1~100之间的偶数,要求屏幕显示时5个偶数一行,每个数占5位,右对齐。
编程题7:编程计算100到1000之间有多少个数其各位数字之和是5,并将其输出。
编程题8:求满足下列条件的三位数n ,它除以11(整数相除)所得到的商等于n 的各位数字的平方和,且其中至少有二位数字相同的数。
编程题9:有一些十进制整数对ab 和cd 具有如下特性:ab×cd=ba×dc,其中a≠b 且c≠d。
如:12×42=21×24。
请编程找出30~50之间满数,将100~200之间的素数全部输出,要求屏幕上每个数占4位,每行显示5个素数,左对齐。
《C语言程序设计》练习题
《C语⾔程序设计》练习题⼀、选择题(在A、B、C、D中选择⼀个正确的)1、以下叙述不正确的是()。
A、⼀个C源程序可由⼀个或多个函数组成B、⼀个C源程序必须包含⼀个main函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于⼀条语句的后⾯2、C语⾔规定:在⼀个源程序中,main函数的位置()。
A、必须在最开始B、必须在系统调⽤的库函数的后⾯C、可以任意D、必须在最后3、⼀个C程序的执⾏是从()。
A、本程序的main函数开始,到本程序main函数结束B、本程序⽂件的第⼀个函数开始,到本程序⽂件的最后⼀个函数结束C、本程序的main函数开始,到本程序⽂件的最后⼀个函数结束D、本程序⽂件的第⼀个函数开始,到本程序main函数结束4、C语⾔中的标识符只能由字母、数字和下划线三种字符组成,且第⼀个字符()。
A、必须为字母B、必须为下划线C、必须为字母或下划线D、可以是字母、数字和下划线中任⼀种字符5、在计算机内部⽤来传送、存储、加⼯处理的数据或指令都是以()形式表⽰的。
A、⼗进制B、⼋进制C、⼆进制D、⼗六进制6、⼗进制数127转换为⼆进制数是()。
A、1111110B、1111111C、1000000D、100000017、⼗六进制数10H转换为⼋进制是()。
A、10B、2C、20D、168、1KB表⽰()。
A、1024位B、1000位C、1024字节D、1000字节9、以下不正确的标识符是()。
适⽤专业考试⽅式(闭卷) 考试时间为分钟A、scoreB、_abcC、x+yD、Hello10、⼗进制数107转换成⼆进制数是()。
A. 01101011B. 10001101C.0110 1101D. 1110 110111、⼆进制数1011011转换为⼗进制数是()。
A、91B、87C、107D、12312、若x、i、j和k都是int型变量,则计算下⾯的表达式后,x的值为()。
x=(i=4,j=16,k=32)A、4B、16C、32D、5213、假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。
《C Primer Plus》第六版 第十一章编程练习答案
1#include<stdio.h>#include<string.h>#define SIZE 100void input(char *, int );int main(void){char arr[SIZE];int n;puts("input the number of n:");scanf("%d", &n);getchar();puts("input your string: ");input(arr, n);printf("%s\n", arr);getchar();return 0;}void input(char *Arr, int len){int i;for (i=0; i<len; i++){*(Arr+i)=getchar();}*(Arr+i)='\0';while(getchar() !='\n'){continue;}}2.#include<stdio.h>#include<string.h>#define SIZE 100void input(char *, int );int main(void){char arr[SIZE];int n;puts("input the number of n:");scanf("%d", &n);getchar();puts("input your string: ");input(arr, n);puts(arr);getchar();return 0;}void input(char *Arr, int len){int i;for (i=0; i<len; i++){*(Arr+i)=getchar();if (*(Arr+i) ==' ' || *(Arr+i)=='\t'|| *(Arr+i)== '\n'){break;}}*(Arr+i)='\0';while(getchar() !='\n'){continue;}}3.#include<stdio.h>#include<string.h>#define SIZE 100void input(char * );int main(void){char arr[SIZE];puts("input your string: ");input(arr);puts(arr);getchar();return 0;}void input(char *Arr){char ch;int i=1;do{ch=getchar();}while(ch ==' ' || ch =='\t' || ch =='\n');Arr[0]=ch;while( (ch=getchar()) &&( ch!=' '&&ch!='\t'&&ch!='\n')) {Arr[i]=ch;i++;}Arr[i]='\0';while (getchar()!='\n'){continue;}}4.#include<stdio.h>#include<string.h>#define SIZE 100void input(char *, int);int main(void){char arr[SIZE];int n;puts("input the number of n:");scanf("%d", &n);puts("input your string: ");input(arr, n);puts(arr);getchar();return 0;}void input(char *Arr, int len){char ch;int i=1;do{ch=getchar();}while(ch ==' ' || ch =='\t' || ch =='\n');Arr[0]=ch;while( (ch=getchar()) &&( ch!=' '&&ch!='\t'&&ch!='\n') &&i<len) {Arr[i]=ch;i++;}Arr[i]='\0';while (getchar()!='\n'){continue;}}5.#include<stdio.h>#include<string.h>#define SIZE 100char *find(char *, char);int main(void){char arr[SIZE];char ch;char *ps;while(1){puts("input a string:");fgets(arr, 100, stdin);puts("input a character:");ch=getchar();ps=find(arr, ch);if(ps){puts("Find the character!");}else{puts("Con't find the charcter!");}getchar();}getchar();return 0;}char *find(char *Arr, char c){int len=strlen(Arr);char *p=Arr;int i;for (i=0; i<len; i++){if (c== *p){return p;}p++;}if (i==len){return NULL;}return 0;}6.#include<stdio.h>#include<string.h>#define SIZE 100int is_within(char *, char);int main(void){char arr[SIZE];char ch;int re;while(1){puts("input a string:");fgets(arr, 100, stdin);puts("input a character:");ch=getchar();re=is_within(arr, ch);if(re){puts("Find the character!");}else{puts("Con't find the charcter!");}getchar();}getchar();return 0;}int is_within(char *Arr, char c){int len=strlen(Arr);char *p=Arr;int i;for (i=0; i<len; i++){if (c== *p){return 1;}p++;}if (i==len){return 0;}else{return -1;}}7.#include<stdio.h>#include<string.h>#define SIZE 20char *mystrncpy(char *, char *, int ); int main(void){char s1[SIZE];char s2[SIZE];char *ps;int n;while(1){puts("input string s2:");gets(s2);puts("input string s1:");gets(s1);puts("Input the number of n:");scanf("%d", &n);ps=mystrncpy(s1,s2, n );puts("After copy:");puts(ps);getchar();}getchar();return 0;}char *mystrncpy(char *dst, char *src, int len) {int i;char *p1, *p2;int L=strlen(src);p2=src;p1=dst;for (i=0; i<(L<len? L:len); i++){*(p1+i)=*(p2+i);}return p1;}8.#include<stdio.h>#include<string.h>#define SIZE 20char *string_in(char *, char * );int main(void){char s1[SIZE];char s2[SIZE];char *ps;while(1){puts("input string s2:");gets(s2);puts("input string s1:");gets(s1);ps=string_in(s1,s2);if (ps){puts("Find it!");}else{puts("Con't find it!");}getchar();}getchar();return 0;}char *string_in(char *s1, char *s2){int len1, len2;int i, j, temp;char *p1=s1;char *p2=s2;len1=strlen(s1);len2=strlen(s2);if (*p1=='\0' || *p2 =='\0') return NULL;for (i=0; i<=(len1-len2); i++){temp=i;j=0;while(p2[j]!='\0'&& p1[temp]==p2[j]){temp++;j++;}if (j==len2) return(p1+temp);}if (i>(len1-len2)) return NULL;}9#include<stdio.h>#include<string.h>#define SIZE 20void fun(char *);int main(void){char arr[SIZE];while(1){puts("input a string:");gets(arr);fun(arr);puts(arr);getchar();}getchar();return 0;}void fun(char *Arr){char *p=Arr;int len=strlen(Arr);int i;char ch;for (i=0; i<len/2; i++){ch=p[i];p[i]=p[len-i-1];p[len-i-1]=ch;}}10#include<stdio.h>#include<string.h>#define SIZE 20void fun(char *);int main(void){char arr[SIZE];while(1){puts("input a string:");gets(arr);if (arr[0]=='\n') break;fun(arr);puts(arr);getchar();}getchar();return 0;}void fun(char *Arr){int i, j;char temp[SIZE];i=j=0;while(Arr[i]!='\0'){if (Arr[i]!=' '){temp[j]=Arr[i];j++;}i++;}strcpy(Arr, temp);Arr[j]='\0';}11.#include<stdio.h>#include<string.h>#define SIZE 20#define LIM 3void display(char *String[]); void Ascii( char *String[]); void Length(char*String[]); void FirstC(char*String[]); int First_word(char String[]);int main(void){char input[LIM][SIZE];char ch;char*ptr[LIM];while (1){int ct=0;puts("please input 10 strings:");while (ct<LIM ){gets(input[ct]);ptr[ct]=input[ct];ct++;}puts("*********************************************");puts("a. print the original strings:");puts("b. print the strings with ASCII order:");puts("c. print the strings with length order:");puts("d. print the strings with first character order:");puts("e. quit.");puts("**********input your choice ***********");ch=getchar();switch (ch){case'a':display(ptr); break;case'b':Ascii(ptr); break;case'c':Length(ptr); break;case'd':FirstC(ptr); break;default:return 0;}getchar();}getchar();return 0;}void display(char *String[]){int i;for (i=0; i<LIM; i++){puts(String[i]);}}void Ascii(char *String[]){char *p;int i,j;for (i=0; i<LIM; i++){for (j=0; j<LIM-i-1; j++){if (strcmp(String[j], String[j+1])>0){p=String[j];String[j]=String[j+1];String[j+1]=p;}}}display(String);}void Length(char *String[]){char *p;int i,j;for (i=0; i<LIM; i++){for (j=0; j<LIM-i-1; j++){if (strlen(String[j])>strlen(String[j+1])){p=String[j];String[j]=String[j+1];String[j+1]=p;}}}display(String);int First_word(char String[]){int i=0;while (String[i] != ' '){i++;}return i;}void FirstC(char *String[]){char *p;int i,j;for (i=0; i<LIM; i++){for (j=0; j<LIM-i-1; j++){if (First_word(String[j])>First_word(String[j+1])){p=String[j];String[j]=String[j+1];String[j+1]=p;}}}display(String);}12#include<stdio.h>#include<string.h>#include<ctype.h>int main(void){int ch;int word, large, small, punctuation, num, begin;word=large=small=punctuation=num=begin=0;while( (ch=getchar()) != EOF){if (isdigit(ch)){num++;}if(ispunct(ch)){punctuation++;}if (isupper(ch)){large++;}if (islower(ch)){small++;}if ( isalpha(ch)){if (begin==0){word++;begin=1;}}else{begin=0;}}printf("words=%d, large=%d, small=%d, punc=%d, num=%d\n", word, large, small, punctuation, num);getchar();return 0;}13.#include<stdio.h>#include<string.h>void Reverse(char *, int );int main(void){char str[100];int len;puts("Enter a string:");gets(str);len=strlen(str);Reverse(str, len);getchar();return 0;}void Reverse(char *str, int n) {int i;char ch;for (i=0; i<n/2; i++){ch=str[i];str[i]=str[n-i-1];str[n-i-1]=ch;}for (i=0; i<n; i++){putchar(str[i]);}putchar('\n');}14.#include<stdio.h>#include<stdlib.h>#include<math.h>int main(int argc, char *argv[]) {double number, value;int p;printf("The command lines has %d arguments:\n", argc-1);number=atoi(argv[1]);p=atoi(argv[2]);value=pow(number, p);printf("the result=%lf\n", value);getchar();return 0;}15.#include<stdio.h>#include<math.h>#include<string.h>#include<ctype.h>int myatoi(char *);int main(int argc, char *argv[]){char str[50]={0};int re;while(gets(str)){re=myatoi(str);printf("number=%d\n", re);}getchar();return 0;}int myatoi(char *p){int len=strlen(p);int i;int n=0;for (i=0; i<len; i++){if (!isdigit(p[i])){return 0;}else{n=n*10+(p[i]-'0');}}return n;}16.#include<stdio.h>#include<math.h>#include<string.h>#include<ctype.h>int main(int argc, char *argv[]){char ch;if (argv[1][0]=='-'){if (argv[1][1]=='l'){while ((ch=getchar())!=EOF){putchar(tolower(ch));}}elseif (argv[1][1]=='u'){while ((ch=getchar())!=EOF){putchar(toupper(ch));}}else{while ((ch=getchar())!=EOF){putchar(ch);}}}getchar();return 0; }。
C程序设计(第三版)习题答案(9、11章) 谭浩强著
}
printf("value=%format\t",x1);printf("value=%format\t",x2);putchar('\n');
输出结果:
value=5.000000ormat value=5.000000ormat
value=3.000000ormat value=8.000000ormat
break;
case 3:scanf("%s",s);
STRING(s);
break;
default:printf("error");
}
}
9.8main()
{int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);
main()
{int a,b;
scanf("%d,%d",&a,&b);
printf("%d",SURPLUS(a,b));
}
9.3#include"math.h"
#define S(a,b,c) ((a+b+c)/2)
#define AREA(a,b,c) (sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c)-c)))
scanf("%d",&stu.score[j]);
《精通C程序设计教程》第十、十一章部分习题答案
《精通C程序设计教程》第十、十一章部分习题答案第十章10.2 read=0, green=1, yellow=5, white=6, black=710.6 42, 110.8#include "stdio.h"typedef struct student { long xh;char xm[21];int s1,s2,s3; } STU;#define N 5void inp_stu(STU a[N]){ int i;printf("Input %d students data\n",N);printf("xh xm s1 s2 s3\n");for(i=0;i<N;i++) scanf("%ld%s%d%d%d",&a[i].xh,a[i].xm,&a[i].s1,&a[i].s2,&a[i].s3); }void out_stu(STU a[N],int p[N]){ int i;for(i=0;i<N;i++) printf("%ld %s %d %d %d\n", \a[p[i]].xh,a[p[i]].xm,a[p[i]].s1,a[p[i]].s2,a[p[i]].s3);}#define SUM(a,i) (a[i].s1+a[i].s2+a[i].s3)void Sort(STU a[N],int p[N]) /* 索引冒泡排序*/{ int i,j,t;for(i=0;i<N;i++) p[i]=i;for(i=1;i<N;i++)for(j=0;j<N-i;j++)if(SUM(a,p[j])<SUM(a,p[j+1])) { t=p[j];p[j]=p[j+1];p[j+1]=t; }}void main(){ STU a[N];int p[N];inp_stu(a);Sort(a,p);out_stu(a,p);}10.10#include "stdio.h"#include "math.h"typedef struct { int y,m,d; } DA TE;long days(DA TE *p){ long m,n=(p->y-1)*365+(p->y-1)/4-(p->y-1)/100+(p->y-1)/400;for(m=1;m<p->m-1;m++)switch(m){ case 4:case 6:case 9:case 11:n+=30;break;case 2:n+=28+(p->y%4==0&&p->y%100!=0||p->y%400==0);break;default:n+=31;}return n;}void main(){ DA TE a1,a2;long n;while(1){ printf("Input date 1(y m d):");scanf("%d%d%d",&a1.y,&a1.m,&a1.d);if(a1.y<=0) break;printf("Input date 2(y m d):");scanf("%d%d%d",&a2.y,&a2.m,&a2.d);n=labs(days(&a1)-days(&a2));printf("The difference days=%ld\n",n);}}10.11#include "stdio.h"#include "conio.h"typedef struct { int h,m,s; } TIME;void inc_time(TIME *p){ int cy=1;p->s+=cy;cy=p->s/60;p->s%=60;p->m+=cy;cy=p->m/60;p->m%=60;p->h+=cy;}void dec_time(TIME *p){ int cy=1;p->s-=cy;cy=p->s<0;p->s=(p->s%60+60)%60;p->m-=cy;cy=p->m<0;p->m=(p->m%60+60)%60;p->h-=cy;}void main(){ char ch;TIME t;printf("Input a time(h m s):");scanf("%d%d%d",&t.h,&t.m,&t.s);while(1){ ch=getche();if(ch=='+') inc_time(&t);if(ch=='-') dec_time(&t);if(ch=='Q'||ch=='q') break;printf("\r%d:%d:%d\n",t.h,t.m,t.s);}10.14#include "stdio.h" /* 本例请用C++调制*/typedef struct node { int no,quantity;struct node *next; } NodeTp; void DscIns(NodeTp *h,NodeTp *s){ NodeTp *p=h->next,*pr=h;while(p&&p->quantity>s->quantity) { pr=p;p=p->next; }pr->next=s;s->next=p;}void Out(NodeTp *h){ NodeTp *p=h->next;while(p) { printf("%d,%d\n",p->no,p->quantity);p=p->next;}}void Ers(NodeTp *h){ NodeTp *p;while(h) { p=h;h=h->next;delete p;}}void main(){ NodeTp *h,*s,*ps;int no,quantity;h=new NodeTp;h->next=NULL;while(1){ printf("Input no and quantity:");scanf("%d%d",&no,&quantity);if(no==0) break;ps=h;s=h->next;while(s&&s->no!=no) { ps=s;s=s->next; }if(s==NULL) { s=new NodeTp;s->no=no;s->quantity=quantity; } else { s->quantity+=quantity;ps->next=s->next; }DscIns(h,s);}Out(h);Ers(h);}10.15#include "stdio.h" /* 本例请用C++调试*/#define N 10typedef struct node { int data;struct node *next; } NodeTp;NodeTp *Crt(int n){ int i;NodeTp *h,*p,*last;h=new NodeTp;h->data=1;last=h;for(i=2;i<=n;i++){ p=new NodeTp;p->data=i;last->next=p;last=p;}last->next=NULL;return h;void Out(NodeTp *h){ while(h) { printf("%6d",h->data);h=h->next; }}void Ers(NodeTp *h){ NodeTp *p;while(h) { p=h;h=h->next;delete p;}}NodeTp *Chg(NodeTp *h){ NodeTp *p1,*p2,*p,*last;p1=h;if(!p1) return h;p2=h->next;if(!p2) return h;h=NULL;while(1){ p=p2->next;if(h==NULL) { h=p2;p2->next=p1;p1->next=p; }else { last->next=p2;p2->next=p1;p1->next=p; }last=p1;p1=p;if(!p1) break;p2=p->next;if(!p2) break;}return h;}void main(){ NodeTp *h=Crt(N);h=Chg(h);Out(h);printf("\n");Ers(h);}10.16#include "stdio.h"typedef struct node { int data;struct node *next; }NodeTp;void AscIns(NodeTp *h,int x) /* 带附加头结点升序链表插入结点*/ { NodeTp *pr=h,*p=h->next,*s=new NodeTp;s->data=x;while(p&&p->data<x) { pr=p;p=p->next; }pr->next=s;s->next=p;}NodeTp *Crt(){ NodeTp *h=new NodeTp;int x;h->next=NULL;printf("Input integers until input positive integers or zero:\n");while(1){ scanf("%d",&x);if(x<=0) break;AscIns(h,x);}return h;}void Out(NodeTp *h){ h=h->next;while(h) { printf("%6d",h->data);h=h->next; } }void Ers(NodeTp *h){ NodeTp *p;while(h) { p=h;h=h->next;delete p;}}void DelRep(NodeTp *h){ NodeTp *p=h->next,*pn;while(1){ pn=p->next;if(pn==NULL) break;if(pn->data==p->data) { p->next=pn->next;delete pn; }else p=pn;}}void main(){ NodeTp *h=Crt();DelRep(h);Out(h);printf("\n");Ers(h);}10.17#include "stdio.h"typedef struct node { int data;struct node *next; }NodeTp; NodeTp *Crt(){ NodeTp *h=new NodeTp,*p;int x;h->next=NULL;printf("Input integers until input positive integers:\n"); while(1){ scanf("%d",&x);if(x<=0) break;p=new NodeTp;p->data=x;p->next=h->next;h->next=p;}return h;}void Out(NodeTp *h){ h=h->next;while(h) { printf("%6d",h->data);h=h->next; } }void Ers(NodeTp *h){ NodeTp *p;while(h) { p=h;h=h->next;delete p;}}void Del(NodeTp *h){ NodeTp *pr=h,*p=h->next;while(p)if(p->data>5&&p->data<20) { pr->next=p->next;delete p;p=pr->next; }else {pr=p;p=p->next;}}void main(){ NodeTp *h=Crt();Del(h);Out(h);printf("\n");Ers(h);}10.19NodeTp *GetPre(NodeTp *p){ NodeTp *pr=p;while(pr->next!=p) { pr=pr->next; }}10.20void link(NodeTp *p){ NodeTp *pr=p,*q=p;p=p->next;while(pr!=q) { p->previous=pr;pr=p;p=p->next; }}10.27 7 3 B最初为p2指针变量分配的空间丢失第十一章11.5#include "stdio.h"void main(){ FILE *fp;int i,j,c,n,w=4;printf("Input n=");scanf("%d",&n);if(n<=0) { printf("number of rows must be greater than 0.\n");return; }fp=fopen("a2.txt","w");for(i=0;i<n;i++){ printf("%*s",w*(n-i),"");fprintf(fp,"%*s",w*(n-i),"");c=1;printf("%*d",w,c);fprintf(fp,"%*d",w,c);for(j=1;j<=i;j++) { c=c*(i-j+1)/j;printf("%*d",2*w,c);fprintf(fp,"%*d",2*w,c); } printf("\n");fprintf(fp,"\n");}fclose(fp);}11.7#include "stdio.h"void main(){ FILE *fr;int ce,cd,c;char fname[81],ch;c=ce=cd=0;printf("Input a text file name:\n");scanf("%s",fname);fr=fopen(fname,"rb");if(!fr) { printf("File %s not found.\n",fname);return; }while(1){ ch=fgetc(fr);if(feof(fr)) break;c++;if(ch>='A'&&ch<='Z'||ch>='a'&&ch<='z') ce++;if(ch>'0'&&ch<='9') cd++;}fclose(fr);printf("number of letters=%d,number of digits=%d,others=%d\n",ce,cd,c-ce-cd); }11.10#include "stdio.h"#include "math.h"void main(){ FILE *fw;int m,i,c,k;fw=fopen("prime.txt","w");if(!fw) { printf("Can't create the text file prime.txt\n");return; }fprintf(fw,"%6d",2);c=1;for(m=3;m<10000;m+=2){ k=(int)sqrt(m+1);for(i=3;i<=k;i+=2) if(m%i==0) break;if(i>k) { fprintf(fw,"%6d",m);c++;if(c%10==0) fprintf(fw,"\n"); }}fclose(fw);}11.12#include "stdio.h"void main(){ FILE *fp;char ch,fname[81];printf("Input a text file name:\n");scanf("%s",fname);fp=fopen(fname,"rb+");if(!fp) { printf("File %s not found.\n",fname);return; }ch=fgetc(fp);while(!feof(fp)){ if(ch>='A'&&ch<='Z') ch+=32;fseek(fp,-1L,SEEK_CUR);fputc(ch,fp);fseek(fp,0L,SEEK_CUR);ch=fgetc(fp);}fclose(fp);}11.22 char *argv[] 3 !feof(f1) ch, f2 11.23 0 “r”或”rb”feof(fp) ch==32 11.24 添加一行字符到字符文件b.txt11.25 A C D。
第11章谭浩强C++习题及解答
int main() { Student1 stud; stud.get_value1(); stud.display_1(); return 0; }
3. 将例 将例11.3的程序修改、补充,写成 的程序修改、 的程序修改 补充, 一个完整、正确的程序, 保护继承方 一个完整、正确的程序,用保护继承方 式。在程序中应包括输入数据的函数。 在程序中应包括输入数据的函数。
class Student1: private Student {public: void get_value1( ) { get_value(); cout<<"please input age, address: "; cin>>age>>addr; } void display_1( ) { display( ); cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl; } private: int age; string addr; };
class Student1: protected Student {public: void get_value1( ) { cout<<"please input age, address: "; cin>>age>>addr; } void display_1( ) { cout<<"age: "<<age<<endl; cout<<"address: "<<addr<<endl; } private: int age; string addr; };
C++第11章习题解答
第十一章标准模板库(STL)习题一. 基本概念与基础知识自测题11.1填空题11.1.1 STL大量使用继承和虚函数是(1)(填对或错)。
因为(2)。
答案:(1)错(2)它使用的是模板技术,追求的是运行的效率,避免了虚函数的开销11.1.2 有两种STL容器:(1)和(2)。
STL不用new和delete,而用(3)实现各种控制内存分配和释放的方法。
答案:(1)第一类容器(2)近容器(3)分配子(allocator)11.1.3 五种主要迭代子类型为(1)、(2)、(3)、(4)和(5)。
STL算法用(6)间接操作容器元素。
sort算法要求用(7)迭代子。
答案:(1)输入(InputIterator)(2)输出(OutputIterator)(3)正向(ForwardIterator)(4)双向(BidirectionalIterator)(5)随机访问(RandomAccessIterator)(6)迭代子(7)随机访问(RandomAccessIterator)11.1.4 三种STL容器适配器是(1)、(2)和(3)。
答案:(1)stack(栈)(2)queue(队列)(3)priority_queue(优先级队列)11.1.5 成员函数end()得到容器(1)的位置,而rend得到容器(2)的位置。
算法通常返回(3)。
答案:(1)最后一个元素的后继位置(2)引用容器第一个元素的前导位置。
实际上这是该容器前后反转之后的end()(3)迭代子11.1.6 适配器是(1),它依附于一个(2)容器上,它没有自己的(3)函数和(4)函数,而借用其实现类的对应函数。
答案:(1)不独立的(2)顺序(3)构造函数(4)析构函数11.1.7 返回布尔值的函数对象称为(1),默认的是(2)操作符。
答案:(1)谓词(predicate)(2)小于比较操作符“<”11.1.8C++标准库中给出的泛型算法包括(1)种算法。
C语言程序设计》课后习题详细答案
《全国计算机等级考试二级教程——C语言程序设计》习题分析与详细解答第一章程序设计基本概念习题分析与解答1.1 【参考答案】EXE1.2 【参考答案】[1].C [2].OBJ [3].EXE1.3 【参考答案】[1]顺序结构[2]选择结构[3]循环结构第二章C程序设计的初步知识习题分析与解答一、选择题2.1 【参考答案】B)2.2 【参考答案】D)2.3 【参考答案】B)2.4 【参考答案】A)2.5 【参考答案】C)2.6 【参考答案】A)2.7 【参考答案】B)2.8 【参考答案】B)2.9 【参考答案】D)2.10 【参考答案】C)2.11 【参考答案】B)2.12 【参考答案】B)2.13 【参考答案】A)二、填空题2.14 【参考答案】[1]11 [2]122.15 【参考答案】[1]4.2 [2]4.22.16 【参考答案】[1]{ [2]} [3]定义[4]执行2.17 【参考答案】[1]关键字[2]用户标识符2.18 【参考答案】[1]int [2]float [3]double2.19 【参考答案】float a1=1.0, a2=1.0;或float a1=1, a2=1;(系统将自动把1转换为1.0)2.20 【参考答案】存储单元2.21 【参考答案】 3.52.22 【参考答案】[1]a*b/c [2]a/c*b [3]b/c*a2.23 【参考答案】把10赋给变量s2.24 【参考答案】[1]位[2]1位二进制数据(0或1)2.25 【参考答案】[1]8 [2]127 [3]01111111 [4]-128 [ 5 ] 10000000 2.26 【参考答案】[1]32767 [2]-32768 [3]10000000000000002.27 【参考答案】[1]十[2]八[3]十六三、上机改错题2.28 【分析与解答】第1行的错误:(1) include是一个程序行,因此在此行的最后不应当有分号(;)。
C + +程序设计模拟试卷8(第1-11章)
一.选择题(每题1分,共25分)1.下列变量名中,()是合法的。
A.56AB._abcC.d-PtrD.while2.下列各种运算符中,()优先级最高。
A. +B.&&C.==D.*=3.设变量m,n,a,b,c,d均为0,执行(m = a==b)&&(n=c==d)后,m,n的值是()。
A.0,0B. 0,1C. 1,0D. 1,14. 字符串”\t\v\\\0which\n”的长度是()。
A. 4B. 3C. 9D. 字符串有非法字符,输出值不确定5. 设a=2,b=3,c=2;计算a+=b*=(++b-c++)中a、b、c的值()。
A.8、6、2B. 2、4、2C.10、8、3D. 5、3、36. 已知:int i=5,下列do-while循环语句的循环次数为()。
do{cout<<i--<<endl;i--;}while(i!=0);A.0 B.1 C.5 D.无限7.下面关于循环语句的描述中,()是错误的。
A.循环体内可以包含有循环语句B.循环体内必须同时出现break语句和continue语句C.循环体内可以出现选择语句D.循环体内可以是空语句8.下面程序段()。
x=3;do{y=x--;if(!y) {cout<<”x”; continue;}cout<<”#”;}while(x>=1 && x<=2);A.将输出## B.将输出###C.是死循环D.含有不合法的控制表达式9.在函数的定义格式中,下面各组成部分中,()是可以省略的。
A.函数名B.函数体C.函数数据类型说明D.函数参数10.在函数的引用调用时,实参和形参应该是使用()。
A.变量值和变量B.地址值和指针C.变量值和引用D.地址值和引用11.以下关于文件操作的叙述中,不正确的是()。
A.打开文件的目的是使文件对象与磁盘文件建立联系B.文件读写过程中,程序将直接与磁盘文件进行数据交换C.关闭文件的目的之一是保证将输出的数据写入硬盘文件D.关闭文件的目的之一是释放内存中的文件对象12. 若有语句int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;则( )不是对a数组元素的正确引用(其中0≤i<10)。
C补充练习题—程序
printf(”%d\n%d\n“,s1,s2);
}
7.写出下列程序运行结果。
#include<stdi0.h>
voidmain(void)
{
int i,j;
int a[3][3]={1,2,3,4,5,6,7,8,9},b[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)b[J][i]= -LC[i][J];
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;
}
printf(“a=%d,b=%d\n”,a,b);
}
二、程序设计题
1.编写运输公司对用户计算运费程序。距离(S.单位为km)越远,每公里运费越低。标准如下:
void main(void)
{int c;
while((c=getchar())!=’\n’)
switch(c-’2’)
{case 0:
case 1:putchar(c+4);
case 2:putchar(c+4);break;
case 3:putchar(c+3);
default:putchar(c+2);break;
10.
11.编写一个程序,要求输出如下图案。
1
1*1
2***2
3*****3
4*******4
5*********5
ly_新标准C++程序设计教材11-20章课后题答案
新标准C++程序设计教材11-20章课后题答案第11章:1.简述结构化程序设计有什么不足,面向对象的程序如何改进这些不足。
答案:结构化程序设计的缺点:(1)用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。
(2)用系统开发每个阶段的成果来进行控制,不适应事物变化的要求。
(3)系统的开发周期长。
面向对象的程序设计如何改进这些不足:面向对象程序设计技术汲取了结构忧程序设计中好的思想,并将这些思想与一些新的、强大的理念相结台,从而蛤程序设计工作提供了一种全新的方法。
通常,在面向对象的程序设计风格中,会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。
同时会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。
2.以下说怯正确的是( )。
A.每个对象内部都有成员函数的实现代码B.一个类的私有成员函数内部不能访问本类的私有成员变量C.类的成员函数之间可以互相调用D.编写一个类时,至少要编写一个成员函数答案:C3.以下对类A的定义正确的是( )。
A.class A{ B.class A{private: int v; int v; A * next;public: void Func() {} void Func() {}} };C.class A{ D. class A{int v; int v;public: public:void Func(); A next;}; void Func() {}A::void Func() { } };答案:B4.假设有以下类A:class A{public:int func(int a) { return a * a; }};以下程序段不正确的是( )。
A.A a; (5);B.A * p = new A; p->func(5);C.A a;A&r =a ; (5);D.A a,b; if(a!=b) (5);答案:D5.以下程序段不正确的是(A)。
《C程序设计》练习及答案
《C程序设计》练习及答案选择题部分第一章c语言概述选择题1、一个c程序的继续执行从______。
a、本程序的main函数开始,到main函数的结束b、本程序文件的第一个函数已经开始,至本程序文件的最后一个函数的完结c、本程序文件的main已经开始,至本程序文件的最后一个函数的完结d、本程序文件的第一个函数已经开始,至本程序文件的main函数的完结2、以下描述恰当的就是______。
a、在c程序中main函数必须位于程序的最前面b、c程序的每行中只能写一条语句c、c语言本身没有输入输出语句d、在对一个c程序展开编程的过程中,可以辨认出注解中的错误3、以下描述不恰当的就是______。
a、一个c源程序可由一个或多个函数组成b、一个c源程序必须包含一个main函数c、c程序的基本组成单位是函数d、在c程序中,注解表明就可以坐落于一条语句的后面4、c语言规定,在一个源程序中,main函数的位置______。
a、必须在最为已经开始b、必须在系统调用的库函数的后面c、可以任一必须在最后5、一个c语言程序是由______。
a、一个主程序和若干子程序共同组成b、函数共同组成c、若干过程共同组成d若干子程序共同组成、、d(acdcb)第三章数据类型、运算符与表达式(红色显示的部分为参考答案)1、如果x、i、j和k都就是int型变量,则排序下面表达式后,x的值______。
x=(i=4,j=16,k=32)a.4b.16c.32d.522、设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是______。
a.7b.8c.6d.23、以下四组选项中,均不是c语言关键字的选项就是______。
a.defineiftypeb.getccharprintfc.includescanfcased.whilegopow4、下列四组选项中,均是c语言关键字的选项是______。
a.autoenumincludeb.switchtypedefcontinuec.signedunionscanfd.ifstructtype5、下列四组选项中,均是不合法的用户标识符的选项是______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
31-1-3. 若有定义:union data{int i;float j;char s[5];}k;则在Turbo C 2.0环境中sizeof(k)的值是(18)。
18 (A) 2 (B) 5 (C) 11 (D) 031-1-5. 已知结构体:(20 )。
struct student{char name[20];struct{ int year;int month;}birth;char sex;}stu;20 (A) stu.birth=2009;(B) stu.year=2009;(C) stucent.birth.year=2009;(D) stu.birth.year=2009;31-1-7. 有以下结构体及其变量的定义:struct node{ int data;struct node *next;}*p,*q,*r;如图所示,指针p、q、r分别指向此链表中的三个连续结点。
若要将q所指结点从链表中删除,使p所指结点与r所指结点连接,不能完成指定操作的语句是(22 )。
(考点:链表)22 (A) p->next=q->next; (B) p->next=p->next->next;(C) p->next=r; (D) p=q->next;31-2-4. 下列程序运行后的输出结果是(30 )。
(考点:结构体类型、函数(普通参数)、全局变量和局部变量)# include "stdio.h"struct tree{int x;char *s;}t;{t.x=10;t.s="computer";return(0);}void main(){t.x=1;t.s="minicomputer";fun(t);printf("%d,%s\n",t.x,t.s);}30 (A) 10,computer (B) 1,minicomputer(C) 1,computer (D) 10,minicomputer30-1-9. 若有以下说明和语句:(考点:结构体指针)struct student{ int age;int num;}std, *p;p=&std;则以下对结构体变量std中成员age的引用方式不正确的是(24 )。
24 (A) std.age (B) p->age (C) (*p).age (D) *p.age30-3-4. 下列程序实现输入输出100人的电话号码簿。
(考点:结构体数组)# include <stdio.h># define N 100struct p{ int code;char name[20];char tel[15];};①;void main(){ int i;for(i=0;i<N;i++){ printf("Code:");scanf("%d",②);printf("Name:");scanf("%s",t[i].name);printf("Tel:");scanf("%s",t[i].tel);}for(i=0;i<N;i++)printf("CODE:%4d,NAME:%9s,TEL:%s\n",③,t[i].name,t[i].tel);}29-1-8. 已知学生记录描述如下(考点:嵌套结构体){ int no;char name[20];char sex;struct{ int year;int month;int day;}birth;};struct student s;设变量s中“生日”是“1982年5月29日”,对“生日”的正确赋值方式是(23 )。
23 (A) year=1982;month=5;day=29;(B) birth.year=1982;birth.month=5;birth.day=29;(C) s.year=1982;s.month=5;s.day=29;(D) s.birth.year=1982;s.birth.month=5;s.birth.day=29;28-1-10. 若在下面程序段中使指针变量p指向一个存储整型数据的动态存储单元,则在下划线处应填入( 25 ) 。
(考点:动态分配存储空间函数)int *p;p= malloc(sizeof(int));25 (A) int (B) int * (C) (* int) (D) (int *)28-2-5. 读程序,回答问题。
(考点:结构体数组赋值和运算)# include <stdio.h># include <conio.h>struct mod{int a,b,c;};void main(){ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};int total;total=st[0].a+st[1].b;printf("total=%d\n",total);getch();}程序运行输出total=(31 )。
31 (A)5 (B) 6 (C) 7 (D) 827-1-2. 以下对结构体变量stu1中成员age的不正确引用是(17 )。
(考点:结构体及指针)struct st{ int age;int num;}stu1,*p;p=&stu1;17 (A) stu1.age (B) age (C) p->age (D) (*p).age27-2-6. 读程序,回答问题。
(考点:结构体数组)# include <stdio.h>struct mod{ int a,b,c;};{ struct mod st[3]={{1,2,3},{4,5,6},{7,8,9}};int total;total=st[0].a+st[1].b;printf("total=%d\n",total);}程序的运行结果是(31 )。
31 (A) total=5 (B) total=6 (C) total=7 (D) total=88. 以下程序的功能是:建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请选择填空。
(考点:结构体处理单链表建立算法)# include <stdio.h>struct node{ char data;struct node *next;}( 33 ) CreatList(char *s){ struct node *h,*p,*q;h=(struct node *)malloc(sizeof(struct node));p=q=h;while(*s!=NULL){ p=(struct node *)malloc(sizeof(struct node));p->data=( 34 );q->next=p;q=( 35 );s++;}p->next=NULL;return h;}void main(){ char str[]="link list";struct node *head;head=CreatList(str);…………}33 (A) char * (B) char (C)struct node (D) struct node *34 (A) *s (B) s (C) *s++ (D) *(s)++35 (A) p->next (B) p (C) s (D) s->next26-1-1. 在下列枚举定义中,(16 )是正确的。
(考点:枚举类型)16 (A) enum em1 {my,your=4,his,her=his+10};(B) enum em2 {"No","Yes"};(C) enum em3 {1,one=4,two,8};(D) enum em4 {A,D,E+1,K};26-1-2. 共用体(联合)类型变量在任何给定时刻(17 )。
(考点:结构体、共用体)17 (A) 所有成员一直驻留在各自的内存中(B) 只有一个成员驻留在内存中(D) 没有成员驻留在内存中26-1-3. 以下对结构体变量td的定义中,错误的是(18 )。
(考点:结构体)18 (A) typedef struct aa (B) struct aa{ int n; { int n;float m; float m;}AA; };AA td; struct aa td;(C) struct (D) struct{ int n; { int n;float m; float m;}aa; }td;struct aa td;26-2-6. 读程序,回答问题。
(考点:结构体数组、结构体指针、函数(指针参数))# include <stdio.h>struct stu{ int num;char name[10];int age;};void fun(struct stu *p){ printf("%s\n",(*p).name ); }void main(){ struct stu students[3]={{9801,"Zhang",20},{9802,"Wang",21},{9803,"Zhao",19}};fun(students+2);}①fun函数的功能是(33 )。
33 (A) 结构体数组排序(B) 输出结构体的name成员(C) 输入结构体数组的数据(D) 计算students数组加2后的值②运行该程序,输出的结果是(34 )。
34 (A) Zhang (B) Wang (C) Zhao (D) 980126-2-9. 读程序,回答问题。
(考点:共用体及指针)# include <stdio.h>union pw{ int i;char c[2];}*p,a;void main(){ p=&a;p->i=5;p->c[0]=10;p->c[1]=1;printf("%d\n",a.i);}程序的运行结果为(38 )。
38 (A) 266 (B)1 (C) 10 (D) 539 (A) 266 (B)1 (C) 10 (D) 5 25-2-3. 读程序并回答问题。