机房C语言题库(共11套).pdf
《机房C语言题库(共11套).pdf》由会员分享,可在线阅读,更多相关《机房C语言题库(共11套).pdf(221页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
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=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机房 语言 题库 11
限制150内