《机房C语言题库(共11套).pdf》由会员分享,可在线阅读,更多相关《机房C语言题库(共11套).pdf(221页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【第一套】一、单项选择1.下列数据中,为字符串常量的是()OA、4B、How do you do.C、$abcD、house”2.以下所列的C语言常量中,错误的是()。A、OxFFB、1.2e0.5C、2LD、723.以下程序的输出结果是()omain()float x=3.6;int i;i=(int)x;printf(,x=%f,i=%dn,x,i);)A、x=3.600000,i=4B、x=3 3.600000C、x=3,i=3D、x=3.600000,i=34.若 k 是整型,则以下程序段的执行结果是:()k=-3;if(k=0)print*”#)else printf(&);A、#B
2、、有语法错误,无结果C、&D、#&5.若 x=2,y=3则 x|y 的结果是()。A、3B、0C、1D、26.针对下列程序段回答问题().for(t=1;t=100;t+)(scanf(%d,&x);if(x=0 时什么也不输出B、最多允许输出100个非负整数C、printf函数永远也不执行D、当 x0时整个循环结束7.以下程序的执行结果是()。main()int num=0;while(num go_to11.以下叙述错误的是().A、函数调用可以出现在一个表达式中B、函数调用可以作为一个函数的形参C、函数调用可以作为个函数的实参D、函数允许递归调用12.若用数组名作为函数的实参,传递给形参
3、的是()oA、数组第一个元素的值B、数组的首地址C、数组元素的个数D、数组中全部元素的值13.在 C语言程序中()。A、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用可以嵌套C、函数的定义和函数调用不可以嵌套D、函数的定义和函数调用均可以嵌套14.下 列说法中正确的是().A、函数调用不占运行时间,只占编译时间.B、宏替换不占运行时间,只占编译时间.C、有参数的宏定义,就是函数.D、在定义宏时,宏名与带参数的括弧之间可以加空格.15.若有说明:int*p,m=5,n;以下正确的程序段是()。A、scanf(%d,&n);*p=n;B、p=&n;scanf(%d
4、,*p)C、p=&n;scanf(%d,&p);D p=&n;scanf(%d,p);16.对于下述定义,不正确的叙述是().union dataint i;char c;float f;a,b;A、变量a 的地址和它的各成员地址都是相同的B、可以在定义类型的同时定义变量a,并对a 的任意成员初始化C、变量a 所占内存的长度等于成员f 的长度D、如果有定义语句union data a=6;则对变量a 的初始化是正确的17.有两个整型变量dog和 cat,若要从磁盘文件把数据读到其中,正确的形式是().A、fscanf(dog,2,1,fp);B、fscanf(fp,%d%d,&dog,&cat
5、);C、fscanf(dog,cat,2,1,fp);D fscanf(fp,%d,&dog,&cat);DBDBC BBDBD BBBBD BB二、判断1.若 a 和 b 类型相同,在计算了赋值表达式a=b 后,b 中的值将放入a 中,而 b 中的值不变2.char c6=abode;printf(%3s”,c)表示输出的字段的宽度,如果被输出的数据的位数大于 3,按实际位数输出.3.条件表达式x?a:b中,若 x=0时,表达式的值为a.4.在逻辑运算符中的运算级别由高向低依次为&-|-!5.do-while循环由do开始,while结束,循环体可能一次也不做。6.sntinue语句用于终止
6、循环体的本次执行.7.若有定义和语句:int a3 3=3,5,8,9,12,35,i,sum=0;for(i=0;i1,x 的值为.5.连 接 字 符 串 的 函 数 是,只写函数名即可.6.函数不可以进行嵌套定义,但 可 以 进 行 嵌 套.7.设有以下结构类型说明和变量定义,则变量b 在内存所占字节数是。struct stud short int age;char num3;float s2;double ave;b,*p;8.若有fp=fopen(a1.dat,r+)打开文件语句,这个文件的数据是以 的形式存放在内存中,该 文 件 的 使 用 方 式 为 读/。5.6 3-60 1 s
7、trcat 调用 21 ASCII 码或 ASCII 文本四、程序设计1./*.【程序设计】功能:输入n 个数,并求出小于平均值的数的个数。-*/#include stdio.hint average_num(int a,int n)(/*.则门*/I*厂 nd*/)main()(int n,a100,i,num;void TestFunc();scanf(d”,&n);for(i=0;in;i+)scanf(d”,&ai);num=average_num(a,n);printf(the num is:%dnn,num);TestFunc();)void TestFunc()(Fl LE*I
8、NJ OUT;int n;int i1O;int o;IN=fopen(,in.dat,;,rn);if(IN=NULL)(printf(HRead Hie Error*);)OUT=fopen(out.dat,w);if(OUT=NULL)(printf(Write File Error);)for(n=0;n5;n+)(fscanf(IN,%d,&in);)o=average_num(i,5);fprintf(OUT,%dn,o);fclose(IN);fclose(OUT);)【参考代码】int i,sum=O,k=O;double average;forO=0;ivn;i+)sum=s
9、um+ai;average=sum*1.0/n;for(i=0;i ai)k+;return(k);2./*-【程序设计】功能:从字符串中删除指定的字符。同一字母的大、小写按不同字符处理。例如:若程序执行时输入字符串为:turbocandborlandc+从键盘上输入字符:n,则输出后变为:turbocadborladc+,如果输入的字符在字符串中不存在,则字符串照原样输出。.-*/#include stdio.h,void fun(char s,char c)(/*IE n d)void TestFunc()(FILE*IN,*OUT;char i200;/*char o200;*/IN=f
10、open(,in.dat,;,rH);if(IN=NULL)(printfCRead Rie Error);)OUT=fopen(,out.dat;,wH);if(OUT=NULL)(printf(HWrite File Error*);)fscanf(IN,%s,i);fun(i;n);fprintf(OUTJ,%sH,i);fclose(l N);fclose(OUT);)main()(static char str=nturbocandborlandc+n;char ch;printf(原始字符串:sn”,str);printf(输入一个字符scanf(%c,&ch);fun(str,c
11、h);printf(Hstr=%sn,str);TestFunc();)【参考代码】char*q=s;for(;*q;q+)if(*q!=c)*(s+)=*q;*s=0;五、程序改错1./*-.【程序改错】功能:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。例如:输入ab12c3d,则输出123。注意:不得增行或删行,也不得更改程序的结构!#include stdio.h/*E R R O R*/void fun(char s)(int ij;for(i=0,j=0;si!=0;i+)if(si=0&si=9,)ERROR*Sj=Si;/*ERROR*/sj=O;)main()
12、(char item80;printf(nEnter a string:);gets(item);printf(nnnThe string is:M%sMnM,item);fun(item);printf(nnnThe string of changing is:%sHnn,item);)【改 错1】【学生答案】void fun(char s)【参考答案】void fun(char*s)void fun(char s)void fun(char s80)【改 错2】【学生答案】sj=si;【参考答案】sj+=si;sj=si;j+;【改 错3】【学生答案】sj=O;【参考答案】sj=O;【程序
13、改错】功能:读 入 一 个 整 数m(5 4 m 4 2 0),函 数rnd获 得m个随机整数,函 数sortpb将 这m个随机整数从小到大排序。例 如:若 输 入 整 数7,则应输出:3 10 17 28 32 36 47。-一.*/#include conio.h#include stdio.hvoid sortpb(int n,int a)(*ERROR*/int i,j,p;for(j=0;j n-1;j+)(P=j;for(i=j+1;i aj)p=i;/*FRRQR*/if(P=j)(t=aj;aj=ap;ap=t;)void double rnd()static t=29,c=2
14、17,m=1024,r=0;r=(r*t+c)%m;return(double)r/m);void getarr(int n,int*x)int i;for(i=1;i=n;i+,x+)*x=(in t)(50*rnd();void putarr(int n,int*z)int i;for(i=1;i aj)p=i;【参考答案】if(ap ai)p=i;if(ai ap)p=i;【改错3】【学生答案】if(P=j)【参考答案】if(P!=j)六、程序填空1./*.【程序填空】功 能:计 算 矩 阵a的 下 三 角(包 含 主 对 角 线)元 素 之 积,矩阵的行、列数和元素值均由键盘输入。-*
15、/#define M 10#include stdio.hint main()(int i,j,n,aMM;long s=1;scanf(%d,&n);/*F|_L*/for()for(j=0;jn;j+)scanf(%d,&aij);for(i=0;in;i+)/11 */f o r(j=0;;j+)/*R11 *jS=;printf(%ldnH,s);return 0;)【空1】【学生答案】for()【参考答案】i=0;in;i+i=0;in;i=i+1【空2】【学生答案】f or(j=0;;j+)【参考答案】j=j(i+j)(n-1)&j(n-1)&jn【空3】【学生答案】s=:【参考答
16、案】s*aijaij*s【程序填空】题 目:本 程 序 的 功 能 是 从10个数中找出其中的最大值,完善程序。#include stdio.hmain()int a10,i,*pmax;for(i=0;i10;i+)scanf(%d,&ai);*F|11*pmax=for(i=1;i*pmax)pmax=&ai;*Pl I I*printf(n%d,);)【空1】【学生答案】pmax=【参考答案】pmax=&a0pmax=a【空 2】【学生答案】p r i n t f(%d );【参考答案】*pmax【第二套】一、单项选择1.字符串efg的长度是:().A、3B、11C、7D、52.设变量a
17、 是整型,f 是实型,i 是双精度型,则表达式10+a+i*f值的数据类型为()。A、doubleB、不确定C、intD float3.下列语句的结果是()omain()int j;j=3;printf(%d,+j);printf(%d,j+);)A、3,3B、4,4C、3,4D、4,34.逻辑表达式!(2-1)&x|0的值是()A、1B、0C、3D、25.int a=1,b=2,c=3;if(ab)a=b;if(ac)a=c;则 a 的 值 为()A、3B、2C、1D、不一定6.执行语句for(i=1;i+4;);后 变 量 i 的 值 是()A、3B、5C、4D、不定7.以下正确的描述是(
18、).A、只能用continue语句来终止本次循环B、switch语句中不能出现continue语句C、在循环中break语句不能独立出现D、goto语句只能用于退出多层循环8.下面合法的语句定义是().A、char a =0,1,2,3,4,5;B.int a =string;C.int a5=0,1,2,3,4,5;D、char a=string;9.chara 10;不能将字符串abc存储在数组中的是()。A、int i;for(i=0;i&*p=&aC、(*p)+=a+D、*&a=a16.下列程序正确的运行结果为().#includemain()(union uchar*name;int
19、 age;int income;s;s.name=WANGLING;s.age=28;s.i ncome=1000;printf(,%dn,J s.age);)A、8B、28C、1000D、不确定1 7.定义m y jile 为文件型指针变量,使用fopen只读方式打开一个己存在的二进制文件,以下正确的调用形式为().A、my_file=fopen(my.dat,r);B、my_file=fopen(my.dat,rb+);C、my_file=fopen(my.dat,rb);D、my_file=fopen(my.dat,r+);CABBC BAABB CADDA CC二、判断1.若 i=3,
20、则 printf(%d,-i+);输出的值为-42.格式字符%x 用来以八进制形式输出整数.3.设 u=1,v=2,w=3,则逻辑表达式u|v-w&v+w的值为0.4.已知 a=4,b=2,c=3,d=5,表达式 ab?a:cd?c:d 的值为 3.5.break语句能够终止当前进行的多层循环.6.break语句不能终止正在进行的多层循环.7.若有定义和语句:int a33=3,5,8,9,12,35,i,sum=0;for(i=0;iz&y=z 的值为.4.int x=2,y=3,z=4;则表达式 x+y&(x=y)的值为.5.C语言中,二维数组在内存中的存放方式为按 优先存放.6.函数调用
21、时的实参和形参之间的数据是单向的 传递.7.结构体是不同数据类型的数据集合,作为数据类型,必须先说明结构体 再说明结构体变量.8.调 用 fopen函数打开一文本文件,在 使用方式 这一项中,为 输 入 而 打 开 需 填 入.1 或 1.0或 1.4 0 1 行值类型r+或 r四、程序设计1./*.【程序设计】功能:求出二维数组外围元素之和,作为函数值返回。二维数组的值在主函数中赋予。.*/#define M 4#define N 5#include stdio.hint fun(int aMN)/6Gg访*/*End*!)main()(int aMHN=1,3,5,7,9,2,4,6,8,
22、10,2,3,4,5,6,4,5,6,7,8;void TestFunc();int y;y=fun(a);printf(,s=%dn,Jy);TestFunc();)void TestFunc()(FILE*IN,*OUT;int ilNMN,iOUT;int ij,k;IN=fopen(H14.in,rn);if(IN=NULL)printf(MPlease Verify The Currernt Dir.It May Be Changed);)OUT=fopen(14.out“Jw);if(OUT=NULL)printf(HPlease Verify The Current Dir.It
23、 May Be Changed);)for(k=0;k10;k+)for(i=0;iM;i+)for(j=0;jN;j+)fscanf(IN,d”,&ilNij);iOUT=fun(ilN);fprintf(OUT,%dn,iOUT);)fclose(IN);fclose(OUT);)【参考代码】int s=0;int i,j;for(i=0;iM;i+)s=s+ai0+aiN-1;for(j=1;jN-1;j+)s=s+a0j+aM-1j;return s;2./*-【程序设计】功能:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。#include stdio.h#include
24、 conio.hint fun(int n)(/Begin*E n d)void TestFunc()(Fl LE*IN,*OUT;int s;int t;int o;IN=fopen(Hin.dat;rn);if(IN=NULL)(printf(Read Rie Error);OUT=fopen(out.dat,w);if(OUT=NULL)(printf(Write File Error);)for(s=1;s=5;s+)(fscanf(IN,%d,&t);o=fun(t);fprintf(OUT,%dnH,o);)fclose(IN);fclose(OUT);)main()(int m;
25、printf(Enter m:n);scanf(d”,&m);printf(HnThe result is%dn,fun(m);TestFunc();)【参考代码】int i,k;for(占n+1;i+)for(k=2;ki;k+)if(i%k=O)break;if(k=i)return(i);五、程序改错1./*-【程序改错】功能:一 个5位 数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。#include stdio.hmain()(/*E R R O R*/long ge,shi,qian;wan,x;scanf(,%ld,&x);/*ERROR*/wan=
26、x%10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;/*ERROR*/if(ge=wan|shi=qian)printf(this number is a huiwenn);elseprintf(this number is not a huiwenn);)【改 错1】【学生答案】long ge,shi,qian;wan,x;【参考答案】long ge,shi,qian,wan,x;【改错2】【学生答案】wan=x%10000;【参考答案】wan=x/10000;【改错3】【学生答案】if(ge=wan|shi=qian)【参考答案】if(ge=wan
27、&shi=qian)if(shi=qian&ge=wan)2.【程序改错】功 能:用下面的和式求圆周率的近似值。直到最后一项的绝对值小 于 等 于0.0001。n/4=1-1/3+1/5-1/7.#include stdio.h/*ERROR*!#include math”void fun()(float s=0,t=1,i=1;/*ERROR*/int p=1;/*田ROR*/while(fabs(t)=1e-4)s=s+t;p=-p;i=i+2;t=p/i;)*ERROR*printf(pi=%dn,s*4);)main()(fun();)【改 错1】【学生答案】#include math
28、【参考答案】#include math.h#include【改 错2】【学生答案】int p=1;【参考答案】float p=1;float p=1.0;double p=1;double 1.0;【改 错3】【学生答案】while(fabs(t)1e-4)while(0.0001fabs(t)while(1e-4 0.0001)【改 错4】【学生答案】printf(pi=%dn,s*4);【参考答案】printf(pfn,s*4);printf(pi=%lfn,s*4);六、程序填空1./*-【程序填空】功能:计算并输出500以内最大的10个能被13或 17整除的自然数之和。-*/#incl
29、ude stdio.h/*Fl LL*/int f un()(int m=0,mc=0,j,n;/*Fl LL*/while(k=2&)(lif(k%13=0|)m=m+k;mc+;k;)/*HLL*)main()(printf(%dn,fun(500);)【空 1】【学生答案】int f un()【参考答案】int k【空 2】【学生答案】while(k=2&)【参考答案】me meme=me【空3】【学生答案】if(k%13=0|)【参考答案】k%17=0!(k%17)k/17*17=k【空4】【学生答案】【参考答案】return mreturn(m)2./*-【程 序 填 空】功能:以下
30、程序中,函 数fun的 功 能 是 计 算 2-2x+6,主函数中将调用fun函数计算:y1=(x+8)A2-2(x+8)+6y2=(sin(x)A2-2sin(x)+6请填空。#include#include double fun(double x)(return(x*x-2*x+6);)main()(/*PI I I*/double x,;printf(Enter x:n);scanf(%lf,&x);/*FILL*/y1=fun();/*pi11 */y2=f un();printf(y1=%lf,y2=%lfn,y1,y2);【空1】【学生答案】double x,:【参考答案】y i,
31、y2y2,yi【空2】【学生答案】y1=fun();【参考答案】(X+8)(8+x)x+88+x【空 3】【学生答案】y2=f un();【参考答案】sin(x)【第三套】一、单项选择1.以下程序段 char*alp=ABC,DEF,GHI;int j;puts(alp1);的输出结果是()。A、DB、AC、BD、DEF2.下列表达式中,可作为C合法表达式的是()oA、3.0%2B、3=2=1 =0C、3,2,1,0D.(3,2,1,0)3.下面程序的正确输出结果是().(规定用U表示空格)main()(float x=5.783,y=-10.2345;printf(x=%-8.2f,y=%-
32、8.2f nn,x,y);)A、x=5.78UUUU,y=-10.23UUB、x=5.78,y=-10.23C、5.78,-10.23D、x=UUUU5.78,y=UU-10.234.当 x 为偶数或奇数时(0 除 外),其值都为0 的表达式是:()A、(x/2*2-x)=0B、x%2=0C、!x!=0D、!(x%2)5.下列运算符优先级最低的是().A=B、+C、!D、&6.设有如下程序段:int k=10;while(k=O)k-;则下述说明中正确的是().A、循环体一次也不执行B、循环体执行一次C、死循环D、循环体执行10次7.从循环体内某一层跳出,继续执行循环外的语句是()oA、con
33、tinue 语句B、空语句C、break 语句D、return 语句8.以下对一维整型数组a 的正确说明是()oA、inta(10);B、int n;scanf(,%d,&n);int an;int n=10,an;D、#defineSIZE10(换 行)int aSIZE;9.以下定义语句中,错误的是()oA、int n=5,an;B、int a=1,2;C、char s 10=test;D、char*a3;10.下面叙述中不正确的是().A、可以对字符型数组进行整体输入和输出.B、不可以对浮点型数组进行整体输入和输出.C、可以对整型数组进行整体输入和输出.D、字符型数组可以存放字符串.11
34、.函数定义时的参数为形参,调用函数时所用的参数为实参,则下列描述正确的是().A、实参与形参是双向传递B、形参可以是表达式C、形参和实参可以同名D、实参类型一定要在调用时指定12.以下错误的描述是:函数调用可以()。A、出现在执行语句中B、做为一个函数的实参C、出现在一个表达式中D、做为一个函数的形参13.以下不正确的说法是:C语言规定()。A、实参可以是常量,变量或表达式B、实参可以为任何类型C、形参可以是常量,变量或表达式D、形参应与其对应的实参类型致14.下列形式,不属于编译预处理命令的是().A、#ifdef MB、#undef MC、#if(M1)D、while(M1)15.下面判断
35、正确的是()oA、char c4=,abc,1d4=,a b c;T char c4=d4=Habc;B、char str1O=china;等价于 char str1O;str=chinan;C、char*a=china;等价于 char*a;*a=china”;D、char*s=china”;等价于 char*s;s=nchinaH;16.若有以下结构体定义:struct example int x;int y;v2;则()是正确的引用或定义.A、example.x=10;B、struct v2;v2.x=10;C、example v2;v2.x=10;D、struct example v2
36、=10,3;17.若 fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的 值 为()。A、B、1C、一个非0 值D、0DDACA ACDAC CDCDD DD二、判断1.如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9 个2.格式字符。用来以十六进制形式输出整数3.已知a=3,b=4,c=5,贝 ij逻辑表达式!(ab)&!c|1的值为1.4.已知 x=2,y=2,执行分支语句 if(x=y)y=1;elsey=-1;后,y=-1.5.continue语句对于while和 do-while循环来说,意味着转去计算While表达式.6.在 do-whil
37、e循环中,根据情况可以省略while.7.对于字符数为n 个的字符串,其占用的内存为n+1个字节空间.8.puts函数用来输出一个字符.9.引用数组元素时,下标可以是整型表达式或整型常量.10.函数调用结束后,静态局部变量所占用的空间被释放.11.在一个函数中定义的静态局部变量可以被另一个函数调用.12.当全局变量与局部变量同名时,在局部变量的作用域范围之内,全局变量起作用.13.计算机编译系统对宏定义在编译时进行语法检查.14.若 定 义 int array5,*p;则赋值语句p=array;是正确的.15.共同体变量所占的内存长度等于最长的成员的长度。16.C语言中,打开一个文件就意味着产
38、生了一个文件.错错对错对错对错对错错错错对对错三、填空1 .设 x 的值为15,n的值为2,则表达式x%=(n+=3)运算后x 的值是.2.已知a=-13,b=6,a%b的 十 进 制 数 值 为.3.已知a=12,写出表达式0a&a5)?0:1;执行后整型变量a 的值是.5.C语言中,数组名是一个不可变的 常量,不能对它进行加减和赋值运算.6.C语言中一个函数由函数首部和 两部分组成.7.设有以下共用体类型说明和变量定义,则变量C在 内 存 所 占 字 节 数 是.union stud short int num;char name10;float score5;double ave;c;8
39、.在 C 语言中,关 闭 文 件 即 是 文 件 指 针 不 再 指 向 该.0-101指 针 或 地 址 函 数 体 2 0 文件四、程序设计1./*-【程序设计】功能:计算并输出给定整数n 的所有因子之和(不包括1 与自身)。注意:n 的值不大于1000。例 如:n 的值为855时,应 输 出 704。#include stdio.hint fun(int n)(Begin*E n d)void TestFunc()FILE*I NJ OUT;int ilNJOUTJ;IN=fopen(”in.dat”,T);if(IN=NULL)(printf(HPlease Verify The Cu
40、rrernt Dir.It May Be Changed);)OUT=fopen(”out.dat“Jw”);if(OUT=NULL)(printf(HPlease Verify The Current Dir.It May Be Changed);)for(i=0;i5;i+)(fscanf(INJ%d”,&ilN);iOUT=fun(ilN);fprintf(OUT;%dnH,iOUT);)fclose(IN);fclose(OUT);)main()(printf(,s=%dn,fun(855);TestFunc();)【参考代码】int s=O,i;for(i=2;in;i+)if(n%
41、i=O)s=s+i;return s;2./*-【程序设计】功能:删去一维数组中所有重复的数,只保留不同的数。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例 如:一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10o删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10o注 意:请 勿 改 动 主 函 数main和其它函数中的任何内容。#include stdio.h#define N 80int fun(int a,int n)(/*jp*/*End*i)main()(void TestFunc();int aN
42、=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20;printf(The original data:nH);for(i=0;in;i+)printf(n%3dn,ai);n=fun(a,n);printf(*nnThe data after deleted:nM);for(i=0;in;i+)printf(n%3d,ai);printf(MnnH);TestFunc();void TestFunc()FILE*I NJ OUT;int a N;int n;int i;IN=fopen(”in.dat”,T);if(IN=NULL)|prin
43、tf(Read File Error1);)OUT=fopen(out.dat,wH);if(OUT=NULL)(printf(Write File Error”);)fscanf(IN,”d”,&n);for(i=0;in;i+)fscanf(lN,”d”,&ai);n=fun(a,n);for(i=0;in;i+)fprintf(OUT,H%3dH,ai);fclose(IN);fclose(OUT);)【参考代码】int i,j=1,k=a0;for(i=1;in;i+)if(k!=ai)(aj+=ai;k=ai;)aj=O;return j;五、程序改错1./*-【程序改错】函数fun
44、的功能是:求 1 到 20的阶乘的和。-*/#include stdio.hmain()(int n,j;float s=0.0,t=1.0;for(n=1;n=20;n+)*ERROR*s=1;for(j=1;j0;s1i=NULL;*(s1+i)=0;s1i=0;六、程序填空1./【程序填空】功 能:打印以下图形。#include stdio.hmain()(char a59=int i.j;for(i=0;i5;i+)/*p|LL*f o r(j=i;;j+)aij=,*;/*FILL*fo r(;i 5;i+)(for(j=0;j9;j+)FILL*printf(,%cn,);/*p|
45、1 1 *)【空1】【学生答案】f o r(j=i;;j+)【参考答案】jjjjj5+i【空2】【学生答案】fo r(;i 5;i+)【参考答案】i=0【空3】【学生答案】p r in t f(%c );【参考答案】aij【空4】【学生答案】【参考答案】printf(n)【程序填空】功 能:计 算n门课程的平均分。例 如:若 有5门 课 程 的 成 绩 是:90.5,72,80,61.5,55则函数的值为:71.80。.*/#include float fun(float*a,int n)int i;float ave=0.0;/*pi11 */for(i=0;i+)ave=ave+ai;av
46、e=ave/n;/11 *I)int main()(float score30=90.5,72,80,61.5,55,aver;/*Fl LL*/aver=f un(,5);printf(nAverage score is:%5.2fn,aver);return 0;)【空 1】【学生答案】for(i=0;i+)【参考答案】ii【空2】【学生答案】【参考答案】return ave;【空3】【学生答案】ave r=f un(,5);【参考答案】score【第四套】一单选1 sizeof(float)是()。A、一个浮点表达式B、一个不合法的表达式C、运算结果是一个整型表达式。D、一种函数调用2
47、下列数据中属于“字符串常量”的是()。A、PB、“ABCC、ABCD.,ABC3 用下面的scant函数输入数据,使得i=10,k=15选择正确的键盘输入方法().(用TCR”表示回车,U表示空格)main()int i,k;scanf(i=%d,k=%d,&i,&k);)A.i=10CRk=15CRB、i=10,k=15CRC、10U15CRD、10,15CR4 逻辑表达式3V2|卜 1&43-!0的值为:()A、1B、3C、0D、25 下列运算符中是C语言关系运算符的是()oA、&B、C、!=D、!6 语句while(!E);中的表达式!E等 价 于()。A、E=1B、E!=0C、日=1D
48、、E=07 以下正确的描述是().A、只能在循环体内和switch语句内使用break语句B、continue语句的作用是终止整个循环的执行C、从多层嵌套的外层循环中退出时,只能使用got。语句D、在循环体内使用break和 continue语句的作用相同8 下面各语句中,能正确进行赋字符串操作的语句是().A、char s15 =ABCDE;B、chars26=A,B,C,D,E;C、charstf =ABODE;D、char s5=A,B,C)D,E;9 若有说明:int a34=0;则下面正确的叙述是()。A、数组a 中每个元素均可得到初值0B、只有元素a00可得到初值0C、数组a 中各
49、元素都可得到初值,但其值不一定为0D、此说明语句不正确1 0 若有说明inta34;则 a 数组元素的非法引用是()。A、a13B、a04C、a02*1D、a4-201 1 执行下面程序后,输出结果是()Omain()int a,b,c;a=45,b=27,c=0;c=max(a,b);printf(M%dnM,c);)int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);)A、72B、18C、27D、451 2 以下正确的描述是:在 C语言程序中()oA、函数的定义可以嵌套,但函数的调用不可以嵌套B、函数的定义不可以嵌套,但函数的调用
50、可以嵌套C、函数的定义和函数的调用均可以嵌套D、函数的定义和函数的调用均不可以嵌套1 3 在 C语言的函数中,下列正确的说法是()oA、形参可以是常量和变量B、可以有也可以没有形参C、数组名不能作形参D、必须有形参14 设有宏定义#define PI 3.14 W define S(r)PI*r*r,则 S(2)的值为().A、6.28B、12.56C、3.14D、9.4215 int a10=1,2,3,4,5,6,7,8;int*p;p=&a5;p-3的 值 是()。A、4B、2C、不一定D、31 6 若有以下程序段,则使用错误的选项是().struct student(int num;i