C语言模拟题14720.pdf

上传人:得** 文档编号:79388790 上传时间:2023-03-21 格式:PDF 页数:26 大小:969.58KB
返回 下载 相关 举报
C语言模拟题14720.pdf_第1页
第1页 / 共26页
C语言模拟题14720.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《C语言模拟题14720.pdf》由会员分享,可在线阅读,更多相关《C语言模拟题14720.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言模拟题(一)一、选择题 1、以下字符中不是转义字符的是(A)。A、c B、b C、D、a 2、设a=12,且a定义为整型变量。执行语句a+=a-=a*=a;后a的值为(A)。A、0 B、144 C、132 D、12 3、已定义float x=,y=;根据下面的输出结果,正确的输出语句是(C).y+x=,y-x=A、printf(y+x=%6.2f,y-x=%6.2fn,y+x,y-x);B、printf(y+x=%f,y-x=%fn,y+x,y-x);,l C、printf(y+x=%.2f,y-x=%.2fn,y+x,y-x);D、printf(y+x=%5.2f,y=%5.2fn,y

2、+x,y-x);4、执行下面程序段后,b的值为(A).int s=35;char t=A;int b;b=(s&4)&(ta);A、1 B、3 C、2 D、0 5 k是整型,则以下程序段的执行结果是:(B)k=-3;if(k=0)printf(#)else printf(&);A、#B、有语法错误,无结果 C、&D、#&6 设j和k都是int类型,则下面的for循环语句(D)。for(j=0,k=0;j=9&k!=876;j+)scanf(%d,&k);A、最多执行9次 B、是无限循环 C、循环体一次也不执行 D、最多执行10次 7 以下正确的描述是(A).A、只能在循环体内和switch语句

3、内使用break语句 B、continue语句的作用是终止整个循环的执行 C、从多层嵌套的外层循环中退出时,只能使用goto语句 D、在循环体内使用break和continue语句的作用相同 8 以下能对一维数组a进行正确初始化的语句是(B)。A、int a10=;B、int a=0;C、int a10=10*1;D、int a10=(0,0,0,0,0)9 以下正确的说法是(A).A、函数的类型决定返回值的类型 B、定义函数时,形参的类型说明可以放在函数体内 C、return后面不能为表达式 D、如果形参与实参的类型不一致,以实参类型为准 10 以下程序的输出结果为(C)。int func(

4、int x,int y)return(x+y);main()int a=1,b=2,c=3,d=4,e=5;printf(%dn,func(a+b,b+c,c+a),(d+e);A、9 B、15 C、13 D、函数调用出错 11 以下正确的说法是(D)。A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调 B、用户若需调用标准库函数,调用前必须重新定义 C、系统根本不允许用户重新定义标准库函数 D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义 12 在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

5、(A).A、用尖括号时,直接按系统标准方式检索文件目录.B、用双引号时,直接按系统标准方式检索文件目录.C、用双括号和尖括号时,都不检查源文件所在的文件目录.D、以上说法都不对.13 当说明一个结构体变量时系统分配给它的内存是(D)。A、成员中占内存量最大者所需的容量 B、结构中第一个成员所需内存量 C、结构中最后一个成员所需内存量 D、各成员所需内存量的总和 14 以下程序段给数组所有的元素输入数据,请选择正确答案填入(C)。#include main()int a10,i=0;while(iz&y!=z的值为 6 运算符的级别由高向低依次为!-算术运算符-关系运算符-逻辑运算符-赋值运算符

6、.Y 7 已知a=3,b=4,c=5,则逻辑表达式!(ab)&!c|1的值为 8 for循环语句只能用于循环次数确定的情况下.N 9 break语句能够终止当前进行的多层循环.Nh 10 for循环的三个表达式都可以省略.Y 11 下列程序段是否正确:N int a10;.a+;kl 12 定义一维数组的形式为:类型说明数组名表达式,其中表达式必须是整型常量.N 13 字符串Da lian在内存中的存储长度是7.N 14 字符串Da lian在内存中的存储长度是7.N 15 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.N lllllllll 16 静态局

7、部变量是在编译时被初始化的,故它只被赋初值一次.Y 17 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N 18 假设有int a10,*p;则p=&a0与p=a等价Y 19 typedef可以定义生成新的数据类型.N 20 用fopen(file,r+);打开的文件file可以进行修改。Y 三、填空题 1、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:a*=16+(b+)-(+c);后,a的值是 _28_.2 若所用变量都已正确定义,请填写以下程序段的输出结果_OK_.for(i=1;i=6)&(3=7)的值是_1_.4 设x和y均为int型变量,则以

8、下for循环中的scanf语句最多可执行的次数是_3_.for(x=0,y=0;y!=123&x3;x+)scanf(%d,&y);5 按内存排列顺序,数组char a2中的所有元素是a0和_a1_.6 函数不可以进行嵌套定义,但可以进行嵌套_调用_.7 将数组a的首地址赋给指针变量p的语句是_p=a;_.8 设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 _30_。struct stud char num6;float s4;double ave;a,*p;四、程序设计 1、【程序设计】功能:把20个随机数存入一个数组,然后输出该数组中的 最小值。其中确定最小值的下标的操作在fu

9、n函数中 实现,请给出该函数的定义。-#include#include#define VSIZE 20 int vectorVSIZE;int fun(int list,int size)/*Begin*/*End */main()int i;void NONO();for(i=0;iVSIZE;i+)vectori=rand();printf(Vector%d=%6dn,i,vectori);i=fun(vector,VSIZE);printf(nMininum:Vector%d=%6dn,i,vectori);NONO();void NONO()int i,t;FILE*fp;fp=fop

10、en(,w);for(i=0;iVSIZE;i+)fprintf(fp,Vector%d=%6dn,i,vectori);t=fun(vector,VSIZE);fprintf(fp,nMininum:Vector%d=%6dn,t,vectort);fclose(fp);2、功能:求k!(k13),所求阶乘的值作为函数值返回。(要求使用递归)-*/#include#include long fun(int k)/*Begin*/*End */main()int m;void TestFunc();printf(Enter m:);scanf(%d,&m);printf(nThe result

11、 is%ldn,fun(m);TestFunc();void TestFunc()FILE*IN,*OUT;int s;int t;long o;IN=fopen(,r);if(IN=NULL)printf(Read File Error);OUT=fopen(,w);if(OUT=NULL)printf(Write File Error);for(s=1;s=5;s+)fscanf(IN,%d,&t);o=fun(t);fprintf(OUT,%ldn,o);fclose(IN);fclose(OUT);五、程序改错 1、功能:求1到10的阶乘的和。-*/#include main()int

12、 i;float s=0;float fac(int n);/*ERROR*/for(i=1;i10;i+)/*ERROR*/s=fac(i);printf(%fn,s);float fac(int n)/*ERROR*/int y=1;int i;for(i=1;ib)s=b;s=s*s;printf(%dn,s);A、13 B、9 C、16 D、15 5 执行下面程序段后,i的值是(A).int i=10;switch(i)case 9:i+=1;case 10:i-;case 11:i*=3;case 12:+i;A、28 B、10 C、9 D、27 6 以下不是无限循环的语句为(D)。

13、A、while(1)x+;B、for(;x+=i);C、for(i=10;i-)sum+=i;D、for(y=0,x=1;x+y;x=i+)i=x;7 下面程序段运行的结果是(A).x=-1;do x=x*x;while(!x);A、循环执行一次 B、有语法错误 C、死循环 D、循环执行两次 8 若有说明:int a3=1,2,3,4,5,6,7;则a数组第一维的大小是(A)。A、3 B、无确定值 C、4 D、2 9 若定义int a12=1,2,3,4,5,6,7,8,9,10,11,12;char c=a,d,g;则数值为4的表达式是(D).A、a4 B、ag-c C、ad-c D、ad-

14、c 10 以下叙述中正确的是(C)。A、可以在一个函数中定义另一个函数 B、main()函数必须放在其它函数之前 C、构成C程序的基本单位是函数 D、所有被调用的函数一定要在调用之前进行定义 11 下述函数的功能是(C).int fun(char*x)char *y=x;while(*y+);return y-x-1;A、比较两个字符串的大小 B、求字符串存放位置 C、求字符串的长度 D、将字符串x连接到字符串y后面 12 在执行文件包含命令时,下列说法正确的是(A).A、作为一个源程序编译,得到一个目标文件.B、一个 include 命令可指定多个被包含文件.C、在编译时作为两个文件联结.D

15、、被包含的文件可以是源文件或目标文件.13 在说明语句:int*f();中,标识符f代表的是(A)。A、一个返回值为指针型的函数名 B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量 14 下面程序的输出结果应该是(B).char s=ABCD;main()char*p;for(p=s;pb)=c 的值为真。Y 3 格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N 4 整型变量在全部范围内可以用字符格式输出.N 5 已知a=3,b=4,c=5,则逻辑表达式!(a+b)+c-1&b+c/2的值为 6 语句if(ab)printf

16、(%d,a);else printf(%d,b);可以用条件表达式aba:b取代N.7 已知a=4,b=2,c=3,d=5,表达式aba:cdc:d的值为 8 for循环的三个表达式都可以省略.Y 9 continue语句对于while和do-while循环来说,意味着转去计算While表达式Y.10 for语句的循环体至少执行一次.N 11 语句 char ch12=C Program;与语句 char ch=C Program;具有不同的赋初值功能.N 12 定义char s9;gets(s);若输入的字符串是Turbo c(代表按回车键操作)则输入给数组s中的字符个数是 13 对静态数组

17、的初始化是在编译阶段完成的.Y 14 C语言中,通过函数调用只能获得一个返回值.N 15 字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.N 16 函数的返回值可以通过函数中的return语句获得。Y 17 被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N 18 char*p=girl;的含义是定义字符型指针变量p,p的值是字符串girl。N 19 对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。Y 20 用 fopen(file,r+);打开的文件file可以进行修改。Y 三、填空题 1 设x的值为15,n的值为2,

18、则表达式x%=(n+=3)运算后x的值是_0_.2 以下程序的输出结果为_9,10_,#include main()int a=010,j=10;printf(%d,%dn,+a,j-);3 设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=!(a+b)+c-1&b+c/2 后,t的值是_1_.4 若输入字符串:abcde,则以下while循环体将执行 _0_ 次.while(ch=getchar()=e)printf(*);5 若有以下数组a,数组元素:a0a9,其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标值是_8_.6 函数

19、不可以进行嵌套定义,但可以进行嵌套_调用_.7 在c程序中,只能给指针变量赋NULL值和_地址_值.8 设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是 _16_。union stud char num6;float s4;double ave;a,*p;四、程序设计 1、功能:将字符串中的小写字母转换为对应的大写字母,其它字符不变。-*/#include#include void change(char str)/*Begin*/*End */main()void change();char str40;void TestFunc();gets(str);change(str);

20、puts(str);TestFunc();void TestFunc()FILE*IN,*OUT;char i200;IN=fopen(,r);if(IN=NULL)printf(Read File Error);OUT=fopen(,w);if(OUT=NULL)printf(Write File Error);fscanf(IN,%s,i);change(i);fprintf(OUT,%sn,i);fclose(IN);fclose(OUT);2、功能:从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。例如:当s中的数为:7654321时,t中的数为:642。-*/#i

21、nclude long fun(long s,long t)/*Begin*/*End */return t;main()long s,t,m;void TestFunc();printf(nPlease enter s:);scanf(%ld,&s);m=fun(s,t);printf(The result is:%ldn,m);TestFunc();void TestFunc()FILE*IN,*OUT;int n;long i,t,m;IN=fopen(,r);if(IN=NULL)printf(Read File Error);OUT=fopen(,w);if(OUT=NULL)pri

22、ntf(Write File Error);for(n=0;n0)/*ERROR*/x1=(x2+1)/2;x2=x1;/*ERROR*/day+;printf(the total is%dn,x1);2、功能:将s所指字符串的反序和正序进行连接形成一个新串放在 t所指的数组中。例如:当s所指的字符串的内容为ABCD时,t所指数组中 的内容为DCBAABCD。-*#include#include#include /*ERROR*/void fun(char s,char t)int i,d;/*ERROR*/d=len(s);/*ERROR*/for(i=1;id;i+)ti=sd-1-i;f

23、or(i=0;i1)/*FILL*/f=_;else f=1;return(f);main()int n;long y;printf(input a inteager number:n);/*FILL*/scanf(%d,_);y=power(n);/*FILL*/printf(%d!=%ldn,n,_);C 语言模拟题(三)一、选择题 1 下列变量说明语句中,正确的是(D)。A、char a;b;c;B、char:a b c;C、int x;z;D、int x,z;2 设以下变量均为int类型,则值不等于7的表达式是(A)。A、(x=6,x+1,y=6,x+y)B、(x=y=6,x+y,y+

24、1)C、(y=6,y+1,x=y,x+1)D、(x=y=6,x+y,x+1)3 设:long w=65535,t=7654321;根据下面的输出结果,正确的程序段是(C).w=65535,t=7654321 end A、printf(w=%5d,t=%7dn,w,t);printf(%s,end);B、printf(w=%5ld,t=%7ld,w,t);printf(%c,end);C、printf(w=%5ld,t=%7ldn,w,t);printf(%s,end);D、printf(w=%5u,t=%7un,w,t);printf(end);4 设x,y,z,t均为整型变量,则执行以下语句

25、后,t的值为:(B)x=y=z=1;t=+x|+y&+z;A、0 B、1 C、2 D、不定值 5 如果int a=2,b=3,c=0,下列描述正确的是(B)。A、a&bc的结果为假 B、!a!=(b!=c)表达式的值为1 C、a|(b=c)执行后b的值为0 D、ab!=c和a(b!=c)的执行顺序是一样的 6 从键盘输入的整数中找出最小值min,输入0时结束.请在A处填写正确语句(D)。#include main()int min=0,a;do scanf(%d,&a);if(mina)min=a;while(_A_);printf(%d,min);A、a=0 B、a=0 C、a0&a0 D、

26、a!=0 7 设有如下程序段:int k=10;while(k=0)k-;则下述说明中正确的是(A).A、循环体一次也不执行 B、循环体执行一次 C、死循环 D、循环体执行10次 8 static char str10=China;数组元素个数为(D)。A、6 B、9 C、5 D、10 9 函数调用:strcat(strcpy(str1,str2),str3)的功能是(D)。A、将串str1复制到串str2中后再连接到串str3之后 B、将串str2连接到串str1之后再将串str1复制到串str3中 C、将串str1连接到串str2之后再复制到串str3之后 D、将串str2复制到串str1

27、中后再将串str3连接到串str1之后 10 C语言程序中必须有的函数是(B)。A、#include B、main C、printf D、scanf 11 程序运行结束后,屏幕上输出值为(B).static int x=10;main()int x=3;f();x-;printf(%d,x);f()x+;A、10 B、2 C、11 D、3 12 中有命令,#include,若中有全局静态变量a,则(B).A、a在中应用extern说明.B、a在中有效,不必用extern说明.C、a在中不生效 D、a在和中均不生效.13 若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是(

28、C)。A、*p=*q;B、n=*q;C、p=n;D、p=q;14、以下程序的输出结果是(A).main()char str=ABCD,*p=str;printf(%dn,*(p+3);A、68 B、不确定的值 C、字符D的地址 D、0 15 使用共用体变量,不可以(A)。A、同时访问所有成员 B、进行动态管理 C、节省存储空间 D、简化程序设计 二、判断题 1 在C语言中,各种类型的整型数据在内存中都占2个字节。N 2 表达式(j=3,j+)的值是 3 格式字符%e以指数形式输出实数数字部分小数位数7位.N 4 char c6=abcde;printf(%3s,c)表示输出的字段的宽度为3位,

29、如果被输出的数据的位数大于3,只输出3位数.N 5 设d=1,e=2,f=3,则逻辑表达式!(d+e)+f&e+f*2的值为 6 已知a=1,b=2,c=3,d=4,则条件表达式aba:(cdc:d)的值为 7 已知a=3,b=4,c=5.则逻辑表达式a+bc&b=c值为 8 do-while循环由do开始,while结束,循环体可能一次也不做。N 9 对于for(表达式1;表达式2;表达式3)语句来说,continue语句意味着转去执行表达式 10 在do-while循环中,任何情况下都不能省略 11 对静态变量的初始化不是在编译阶段完成的.N 12 定义 int x5,n;则x=x+n;或

30、x+;都是正确的.N 13 语句 char ch12=C Program;与语句 char ch=C Program;具有不同的赋初值功能.N 14 数组名作为函数调用时的实参,实际上传递给形参的是数组第一个元素的值.N 15 变量根据其作用域的范围可以分作局部变量和全局变量.Y 16 当变量的存储类型定义缺省时,系统默认为变量的存储类型为auto类型,分配在静态区.N 17 若有宏定义:#define S(a,b)t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。N 18 设有如下定义:int*p;*p=100;则 printf(%d,p);的输出结果是 19 使几个不同的变量共

31、占同一段内存的结构,称为结构体类型.N 20 在打开文件时,必须说明文件的使用方式,wb+表示以读/写方式打开一个二进制文件.N 三、填空题 1、若有定义:int a=10,b=9,c=8;接着顺序执行下列语句后,变量c中的值是 _9_.c=(a-=(b-5);c=(a%11)+(b=3);2 getchar()函数只能接收一个_字符_.3 当a=1,b=2,c=3时,执行以下程序段后b=_2_.if(ac)b=a;a=c;c=b;4 若输入字符串:abcde,则以下while循环体将执行 _0_ 次.while(ch=getchar()=e)printf(*);5 字符串的结束标志是_0_.

32、6 如果函数不要求返回值,可用_void_来定义函数为空类型.7 将函数funl 的入口地址赋给指针变量p的语句是_p=funl_.8 设有以下共用体类型说明和变量定义,则变量d在内存所占字节数是 _12_。union stud short int num;char name8;float score3;double ave;d,stu3;四、程序设计 1、功能:用do-while语句求1100的累计和。-*/#include long int fun(int n)/*Begin*/*End */main()int i=100;void TestFunc();printf(1100的累加和为:

33、%ldn,fun(i);TestFunc();void TestFunc()FILE*IN,*OUT;int i;int iIN;long int iOUT;IN=fopen(,r);if(IN=NULL)printf(Please Verify The Currernt Dir.It May Be Changed);OUT=fopen(,w);if(OUT=NULL)printf(Please Verify The Current Dir.It May Be Changed);for(i=0;i5;i+)fscanf(IN,%d,&iIN);iOUT=fun(iIN);fprintf(OUT

34、,%ldn,iOUT);fclose(IN);fclose(OUT);2 、功能:编写程序,实现矩阵(3行3列)的转置(即行列互换)例如:输入下面的矩阵:100 200 300 400 500 600 700 800 900 程序输出:100 400 700 200 500 800 300 600 900 -*/#include void fun(int array33)/*Begin*/*End */main()int i,j;void NONO();int array33=100,200,300,400,500,600,700,800,900;for(i=0;i 3;i+)for(j=0;

35、j 3;j+)printf(%7d,arrayij);printf(n);fun(array);printf(Converted array:n);for(i=0;i 3;i+)for(j=0;j 3;j+)printf(%7d,arrayij);printf(n);NONO();void NONO()int i,j,array33;FILE*rf,*wf;rf=fopen(,r);wf=fopen(,w);for(i=0;i 3;i+)for(j=0;j 3;j+)fscanf(rf,%d,&arrayij);fun(array);for(i=0;i 3;i+)for(j=0;j 3;j+)

36、fprintf(wf,%7d,arrayij);fprintf(wf,n);fclose(rf);fclose(wf);五、程序改错 1、功能:有1、2、3、4个数字,能组成多少个互不相同且无重复数 字的三位数都是多少-*#include main()int i,j,k;/*ERROR*/printf(n)/*ERROR*/for(i=1;i=5;i+)for(j=1;j5;j+)for(k=1;k5;k+)/*ERROR*/if(i!=k|i!=j|j!=k)printf(%d,%d,%dn,i,j,k);2、功能:以下程序把两个数按由大到小的顺序输出来.-*/#include /*ERRO

37、R*/void swap(int*p1,*p2)int p;p=*p1;*p1=*p2;*p2=p;main()int a,b,*p,*q;printf(input a,b:);/*ERROR*/scanf(%d%d,a,b);p=&a;q=&b;if(ab)swap(p,q);printf(a=%d,b=%dn,a,b);/*ERROR*/printf(max=%d,min=%dn,p,q);六、程序填空 1、功能:计算平均成绩并统计90分以上人数。-*/#include main()int n,m;float grade,average;/*FILL*/average=n=m=_;while(1)/*FILL*/_(%f,&grade);if(grade0)break;n+;average+=grade;/*FILL*/if(grade1)/*FILL*/f=_;else f=1;return(f);main()int n;long y;printf(input a inteager number:n);/*FILL*/scanf(%d,_);y=power(n);/*FILL*/printf(%d!=%ldn,n,_);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁