C语言上机题库百科园第八章!南信大!

合集下载

百科园C语言试题库

百科园C语言试题库

第一章1.以下叙述中错误的是( )B.C语言编写的每个函数都可以进行独立编译并执行2. 计算机高级语言程序的运行方法有编译执行和解释执行两种,以下叙述中正确的是( )A.C语言程序仅可以编译执行3. C语言规定:在一个源程序中,main的位置( ) A.可以任意4. 一个C语言程序是由( ) C.函数组成5. 以下关于结构化程序设计的叙述中正确的是( ) B.c语言中,程序的模块化是利用函数实现的6. 以下叙述正确的是( ) C.c语言本身没有输入和输出语句7. 以下叙述中错误的是( ) A.C语言编写的每个函数都可以进行独立编译并执行8. 以下叙述正确的是( )B.c程序中注释部分可以单独占一行9. 以下叙述正确的是( )D.c语言函数可以嵌套调用,如fun(fun(x))10. 一个C程序的执行是从( )D.本程序main函数开始,到main函数结束11. 以下叙述不正确的是( )A.在c程序中,注释说明只能位于一条语句后面第二章单项选择1以下选项中非法的字符常量是( )(B ‘/019’)2设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()(C double)3判断字符型变量c1是否为数字字符的正确表达式为( )(A (C1>=‘0’)&&(C1<=‘9’))4若有定义语句:int k1=10,k2=20;,执行表达式(k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为()(B 0和20)5下面四个选项中,均是不合法的用户标识符的选项是()。

(B b-a goto int)6判断字符型变量c1是否为小写字母的正确表达式为()。

(B (c1>=’a’)&&(c1<=’z’))7表达式18/4*sqrt(4.0)/8值的数据类型为()。

(B double)8下面四个选项中,均是合法的用户标识符的选项是()。

C语言上机题库百科园第优选章南信大

C语言上机题库百科园第优选章南信大

第三章1.为表示关系x≥y≥z,应使用的表达式是A.(x>=y)&&(y>=z)B.(x>=y>=z)C.(x>=y)AND(y>=z)D.(x>=y)&(y>=z)2.有以下程序main(){inti;for(i=0;i<3;i++)switch(i){case1:printf("%d",i);case2:printf("%d",i);default:printf("%d",i);}}执行后输出结果是3.对for(表达式1;;表达式3)可理解为()。

(表达式1;1;表达式3)(表达式1;0;表达式3)(表达式1;表达式1;表达式3)(表达式1;表达式3;表达式3)4.若i为整型变量,则以下循环执行次数是()。

for(i=2;i==0;)printf("%d",i--);次次C.无限次次5.有以下程序段intn=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);此处do-while循环的结束条件是______。

的值等于12345并且n的值大于等于3的值不等于12345并且n的值小于3的值不等于12345或者n的值小于3的值等于12345或者n的值大于等于36.有以下程序段intn=0,p;do{scanf("%d",&p);n++;}while(p!=12345&&n<3);以下描述中正确的是()。

循环中,根据情况可以省略whileB.由于do-while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句循环由do开始,用while结束,在while(表达式)后面不能写分号D.在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作7.执行语句for(i=1;i++<4;);后变量i的值是()。

C语言上机题库百科园第2章!南信大!

C语言上机题库百科园第2章!南信大!

第二章若有数学式3aebc,则不正确的C语言表达式是()A.3*a*e/b*cB.a/b/c*e*3C.3*a*e/b/cD.a*e/c/b*3设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。

A.4B.3C.2D.1下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是()A.(x/2*2-x)==0B.!(x%2)C.!(x%2==0)D.x%2==0表达式18/4*sqrt(4.0)/8值的数据类型为()。

A.charB.doubleC.不确定D.float在C语言中,要求运算数必须是整型的运算符是( )A.%B./C.++D.!=若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。

A.4C.16D.52C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )A.必须为下划线B.必须为字母C.可以是字母、数字和下划线中的任意一种D.必须为字母或下划线若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )A.不知道a的值,不能确定B.0C.2D.1判断字符型变量c1是否为数字字符的正确表达式为( )A.(c1>='0')&&(c1<='9')B.(c1>=0)&&(c1<=9)C.('0'>=c1)||('9'<=c1)D.'0'<=c1<='9'下面四个选项中,均是合法的用户标识符的选项是()。

A._123 temp INTB.A p_o doC.b-a goto intD.float lao _A以下关于C语言数据类型使用的叙述中错误的是( )A.若要处理如"人员工资"的相关数据,单精度类型B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型C.若要保存带有多位小数的数据,应使用双精度类型D.若要准确无误差的表示自然数,应使用整数类型假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

C语言课件第八章

C语言课件第八章

例 有参函数 int max(int x,int y) { int z;
z=x>y?x:y; return(z); }
传统风格:
函数类型 函数名(形参表) 形参类型说明
{ 说明部分 语句部分
}
例 有参函数(传统风格) int max(x,y) int x,y; { int z;
z=x>y?x:y; return(z); }
{ int temp; temp=x; x=y; y=temp;

return;
}
功能:使程序控制从被调用函数返回到调用函数中, 同时把返回值带给调用函数
说明:
函数中可有多个return语句
若无return语句,遇}时,自动返回调用函数,返回的是一
个不确定的值
若函数类型与return语句中表达式值的类型不一致,按前
float fac(int k) { float t=1; int i;
件中所调用的函数进行了声明,则在各函数中不必再说明。 ▪ 若函数返值是char或int型,系统自动按int型处理
void main() { float add(float a,float b);
float a,b,c; scanf("%f,%f",&a,&b); c=add(a,b); printf("sum is %f",c); } float add(float x, float y) { float z; z=x+y; return(z); }
例 空函数 dummy( ) {}
函数体为空
▪ 8.2.2 有参函数定义 的一般格式
函数返回值类 型
缺省int型 无返回值void

C语言程序设计8章

C语言程序设计8章

C语言程序设计8章《C语言程序设计》课程练习8章函数一、判断题1. 在函数定义中,形参变量有时也可以是全局变量。

( )√ ×正确2. 在C程序中,函数调用可以作为函数的形参。

√ ×正确3. 在C程序中,函数调用可以作为函数的实参。

√ ×正确4. 在C程序中,函数的形式参数是指针类型时,调用时对应的实参也必须是指针类型。

√ ×正确5. 对任一变量一旦被指定为某一确定类型后,该变量在程序运行时所占存储空间的多少和所能参加的运算类型便已确定了。

()√ ×正确6. C语言程序必须包含库函数。

()√ ×正确7. 如果被定义函数的返回值是整型,可以不必进行说明。

()√ ×正确8. 一个计算机系统中的寄存器数目有限,不能定义任意多个寄存器变量。

()√ ×正确9. return语句可以带有表达式也可以不带。

()√ ×正确10. 若某自定义函数中无return语句,则该函数一定没有返回值。

√ ×正确11. 在C语言中,变量的初始化都是在编译阶段完成的。

√ ×正确12. 在同一源文件中,全局变量与局部变量同名,在局部变量作用范围内,全局变量的值等于局部变量的值。

√ ×正确13. return语句作为函数的出口,在某一个函数体内必须唯一。

()√ ×正确14. C语言程序必须包含库函数。

()√ ×正确15. C语言中,任意两个函数间不能嵌套定义,但可以互相调用。

()√ ×正确16. 在函数的定义中,若函数没有参数,则可以省略函数名后的括号。

√ ×正确17. 函数返回值的数据类型取决于return语句中表达式的数据类型。

√ ×正确18. 函数返回值的数据类型取决于主调函数传递过来的实参的数据类型。

√ ×正确19. 函数返回值的数据类型取决于函数定义时为函数指定的数据类型。

C语言程序设计第四版第八章答案

C语言程序设计第四版第八章答案

第八章指针8.1输入三个整数,按由小到大的顺序输出。

main(){ int a,b,c,*p1,*p2,*p3,t;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(*p1>*p2){t=p1;p1=p2;p2=t;}if(*p1>*p3){t=p1;p1=p3;p3=t;}if(*p2>*p3){t=p2;p2=p3;p3=t;}printf("%d,%d,%d\n",*p1,*p2,*p3);}或main(){int a,b,c,*p1,*p2,*p3,t;scanf("%d,%d,%d",&a,&b,&c);p1=&a;p2=&b;p3=&c;if(a>b){t=*p1;*p1=*p2;*p2=t;}if(a>c){t=*p1;*p1=*p3;*p3=t;}if(b>c){t=*p2;*p2=*p3;*p3=t;}printf("%d,%d,%d\n",a,b,c);}8.2输入三个字符串,按由小到大的顺序输出#define N 3#define M 20main(){char str0[N][M],str1[M],*p,*q;int i,l,m,n;q=str0;for(;p<q+N;p++)gets(p);l=strcmp(q,q+1);if(l>0){strcpy(str1,q);strcpy(q,q+1);strcpy(q+1,str1);} m=strcmp(q,q+2);if(m>0){strcpy(str1,q);strcpy(q,q+2);strcpy(q+2,str1);} n=strcmp(q+1,q+2);if(n>0){strcpy(str1,q);strcpy(q+1,q+2);strcpy(q+2,q+1);}for(p=q;p<q+N;p++)puts(p);}8.3输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。

C语言程序设计(第八章)

C语言程序设计(第八章)
字符读写函数fgetc()和fputc()是以字符(字节)为单位
的读写函数。 每次可从文件读出或向文件写入一个字符。
第八章
1.读字符函数fgetc()
fgetc() 函数的功能是从指定的文件中读一个字符,函
数调用的形式为:
字符变量 = fgetc(文件指针);
例如:
ch = fgetc(fp);
的意义是从打开的文件fp中读取一个字符并送入ch中 。
(1)字符读/写函数 :fgetc()/fputc()
(2)字符串读/写函数:fgets()/fputs()
(3)数据块读/写函数:freed/()fwrite()
(4)格式化读/写函数:fscanf()/fprinf()
以上函数原型都在头文件stdio.h中加以声明。
第八章
8.5.1字符读/写函数 :fgetc()/fputc()
关闭文件则断开指针与文件之间的联系,禁止再对该文
件进行操作。
第八章
8.3.1 文件打开的函数fopen()
open函数用于打开一个文件,其调用的一般形式为: 文件指针名 = fopen(文件名, 使用文件方式);
“文件指针名”:必须是被说明为FILE 类型的指针变量。
“文件名”:被打开文件的文件名,“文件名”是字符串常 量、字符数组或字符指针。 “使用文件方式”:指文件的类型和操作要求。
/* 输出系统提示信息 */
上面程序段的意义是,如果返回的指针为空,表示不能 打开test.dat文件,则给出提示信息“打开文件test.dat出 错!”,然后输出系统提示信息,当用户从键盘敲任一键后 执行exit(1)退出程序 。
第八章
8.3.2 文件关闭的函数fclose()

C语言上机题库百科园第2章!南信大!

C语言上机题库百科园第2章!南信大!

C语言上机题库百科园第2章!南信大!第二章若有数学式3aebc,则不正确的C语言表达式是()A.3*a*e/b*cB.a/b/c*e*3C.3*a*e/b/cD.a*e/c/b*3设:int a=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b) && (n=c>d)后n的值为()。

A.4B.3C.2D.1下列表达式中,不满足"当x的值为偶数时值为真,为奇数时值为假"的要求的是()A.(x/2*2-x)==0B.!(x%2)C.!(x%2==0)D.x%2==0表达式18/4*sqrt(4.0)/8值的数据类型为()。

A.charB.doubleC.不确定D.float在C语言中,要求运算数必须是整型的运算符是( )A.%B./C.++D.!=若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为()。

A.4C.16D.52C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符( )A.必须为下划线B.必须为字母C.可以是字母、数字和下划线中的任意一种D.必须为字母或下划线若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是( )A.不知道a的值,不能确定B.0C.2D.1判断字符型变量c1是否为数字字符的正确表达式为( )A.(c1>='0')&&(c1<='9')B.(c1>=0)&&(c1<=9)C.('0'>=c1)||('9'<=c1)D.'0'<=c1<='9'下面四个选项中,均是合法的用户标识符的选项是()。

A._123 temp INTB.A p_o doC.b-a goto intD.float lao _A以下关于C语言数据类型使用的叙述中错误的是( )A.若要处理如"人员工资"的相关数据,单精度类型B.若只处理"真"和"假"两种逻辑值,应使用逻辑类型C.若要保存带有多位小数的数据,应使用双精度类型D.若要准确无误差的表示自然数,应使用整数类型假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()。

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

第八章以下叙述中正确的是()若有以下语句typedefstruct S{int g; char h;}T;A.可用T定义结构体变量是struct S类型的变量C.可用S定义结构体变量是struct类型的变量当定义一个结构体变量时,系统分配给它的内存是()。

A.结构体中最后一个成员所需内存量B.成员中占内存量最大的容量C.结构体中第一个成员所需内存量D.各成员所需内存量的总和若有以下定义:struct link{int data;struct link *next;}a,b,c,*p,*q;且变量a和b之间已有如下图所示的链表结构,若指针p指向a,指针q指向c。

则能把c插入到a和b之间形成新的链表的语句是()>next=&c;q->next=p->next;q->next=&b;=b;/*N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。

请编写函数fun,它的功能是:求出平均分,由函数值返回。

例如,若学生的成绩是85,76,69,91,72,64,87,则平均分应当是。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:*/#include<>#include<>#define N 8struct sliststruct slist *next;};typedef struct slist STREC;double fun(STREC *h){/***********Begin***************//***********End**************/}STREC *creat(double *s) /*创建链表*/ {STREC *h,*p,*q;int i=0;h=p=( STREC*)malloc(sizeof(STREC));p->s=0;while(i<N){q=( STREC*)malloc(sizeof(STREC));q->s=s[i];i++;p->next=q;p=q;}p->next=0;return h;}outlist(STREC *h){STREC *p;p=h->next;printf("head ");do{printf("->%4.1f ",p->s);p=p->next; /*输出各成绩*/}while(p!=NULL);printf("\n\n");}void main(){FILE *wf;double s[N]={85,76,69,85,91,72,64,87},ave; STREC *h;h=creat(s);ave=fun(h);printf("ave=%6.3f\n ",ave);/******************************/wf=fopen("debug\\","w");fprintf(wf,"%6.3f\n",ave);fclose(wf);/*****************************/}【参考代码】double av=;STREC *p=h->next;/*p直接指向"头节点"的下一个节点,即第一个成绩*/while(p!=NULL){av=av+p->s; /*求总分数*/p=p->next;}return av/N; /*返回平均值*//*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */#include <># define N 12typedef struct{ char num[10];double s;} STREC;double fun (STREC *a,STREC *b, int *n){/*************Begin************//*************End*************/}void main(){FILE *wf;STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69},{"GA04",85},{"GA01",91},{"GA07",72},{"GA08",64},{"GA06",87},{"GA09",60},{"GA11",79},{"GA12",73},{"GA10",90}};STREC h[N],t;int i,j,n;double ave;ave=fun(s,h,&n);printf("The %d student data which is higher than %7.3f:\n",n,ave);for(i=0; i<n; i++)printf("%s %4.1f\n",h[i].num,h[i].s);printf("\n");for(i=0; i<n-1; i++)for(j=i+1;j<n;j++)if(h[i].s<h[j].s){t=h[i];h[i]=h[j];h[j]=t;} /*分数从高到低排列*//******************************/wf=fopen("debug\\","w");fprintf(wf, "%d %7.3f\n",n,ave);for(i=0; i<n; i++)fprintf(wf, "%s %4.1f\n",h[i].num,h[i].s);fclose(wf);/*****************************/}【参考代码】int i;double av=;*n=0;for(i=0;i<N;i++)av=av+a[i].s;av=av/N;/*求平均值*/for(i=0;i<N;i++)if(av<=a[i].s){ b[*n]=a[i];*n=*n+1;}/*将高于等于平均分的学生存入b所指存储单元中,并统计人数*/return av;/*返回平均分*//*学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。

例如,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。

主函数中把60放在low中,把69放在heigh中。

注意:部分源程序给出如下。

请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序: */#include <>#define N 16typedef struct{ char num[10];int s ;}STREC;int fun (STREC *a, STREC *b, int l, int h ){/************Begin*************//************End************/}void main (){FILE *wf;STREC s[N]={{ "GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87},{"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91},{"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}};STREC h[N],tt;int i, j,n, low, heigh, t;printf("Enter 2 integer number low & heigh: ");scanf("%d%d",&low,&heigh);if(heigh<low){t=heigh;heigh=low; low=t;}n=fun(s,h,low, heigh);printf("The student 's data between %d--%d:\n ",low, heigh);for(i=0;i<n;i++)printf("%s %4d\n ",h[i].num, h[i].s); /*输出指定分数范围内的学生记录*/ printf("\n ");/******************************/n=fun(s,h,80,98);for(i=0;i<n-1;i++) /*分数在80~98之间的学生记录按分数从低到高排列*/ for(j=i+1;j<n;j++)if(h[i].s>h[j].s){tt=h[i];h[i]=h[j];h[j]=tt;}wf=fopen("debug\\","w");for(i=0;i<n;i++)fprintf(wf, "%s %4d\n",h[i].num, h[i].s);fclose(wf);/*****************************/}【参考代码】int i,j=0;for(i=0;i<N;i++)if(a[i].s>=l&&a[i].s<=h)/*将分数高于l,低于h的学生记录存于结构体数组b中*/b[j++]=a[i];return j;/*返回分数范围内的学生人数*//*某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。

相关文档
最新文档