C语言模拟题.docx
- 文档编号:24871137
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:41
- 大小:28.92KB
C语言模拟题.docx
《C语言模拟题.docx》由会员分享,可在线阅读,更多相关《C语言模拟题.docx(41页珍藏版)》请在冰豆网上搜索。
C语言模拟题
C语言模拟题
(一)
一、选择题
1、以下字符中不是转义字符的是()。
A、'\c'
B、'\b'
C、'\\'
D、'\a'
2、设a=12,且a定义为整型变量。
执行语句a+=a-=a*=a;后a的值为()。
A、0
B、144
C、132
D、12
3、已定义floatx=1.25,y=3.37;
根据下面的输出结果,正确的输出语句是().
y+x=4.62,y-x=2.12
A、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);
C、printf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);
D、printf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);
4、执行下面程序段后,b的值为().
ints=35;
chart='A';
intb;
b=((s&&4)&&(t<'a'));
A、1
B、3
C、2
D、0
5k是整型,则以下程序段的执行结果是:
()
k=-3;
if(k<=0)printf("####")
elseprintf("&&&&");
A、####
B、有语法错误,无结果
C、&&&&
D、####&&&&
6设j和k都是int类型,则下面的for循环语句()。
for(j=0,k=0;j<=9&&k!
=876;j++)scanf("%d",&k);
A、最多执行9次
B、是无限循环
C、循环体一次也不执行
D、最多执行10次
7以下正确的描述是().
A、只能在循环体内和switch语句内使用break语句
B、continue语句的作用是终止整个循环的执行
C、从多层嵌套的外层循环中退出时,只能使用goto语句
D、在循环体内使用break和continue语句的作用相同
8以下能对一维数组a进行正确初始化的语句是()。
A、inta[10]={};
B、inta[]={0};
C、inta[10]={10*1};
D、inta[10]=(0,0,0,0,0)
9以下正确的说法是().
A、函数的类型决定返回值的类型
B、定义函数时,形参的类型说明可以放在函数体内
C、return后面不能为表达式
D、如果形参与实参的类型不一致,以实参类型为准
10以下程序的输出结果为()。
intfunc(intx,inty)
{return(x+y);
}
main()
{inta=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
A、9
B、15
C、13
D、函数调用出错
11以下正确的说法是()。
A、用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
B、用户若需调用标准库函数,调用前必须重新定义
C、系统根本不允许用户重新定义标准库函数
D、用户可以重新定义标准库函数,若如此,该函数将失去原有含义
12在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是().
A、用尖括号时,直接按系统标准方式检索文件目录.
B、用双引号时,直接按系统标准方式检索文件目录.
C、用双括号和尖括号时,都不检查源文件所在的文件目录.
D、以上说法都不对.
13当说明一个结构体变量时系统分配给它的内存是()。
A、成员中占内存量最大者所需的容量
B、结构中第一个成员所需内存量
C、结构中最后一个成员所需内存量
D、各成员所需内存量的总和
14以下程序段给数组所有的元素输入数据,请选择正确答案填入()。
#include
main()
{inta[10],i=0;
while(i<10)scanf("%d",(_______));
.
.
.
}
A、&a[i+1]
B、a+i
C、a+(i++)
D、&a[++i]
15在定义构造数据类型时,不能()。
A、末尾不写分号
B、说明存储类型
C、初始化
D、说明变量
二、判断题
1、在C程序中,%作为运算符时,是只能用于整数运算。
2、若有inti=10,j=2;则执行完i*=j+8;后ⅰ的值为28。
格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.
3、格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.
4charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据的位数大于3,只输出3位数.
5设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!
=z的值为0.
6运算符的级别由高向低依次为!
->算术运算符->关系运算符->逻辑运算符->赋值运算符.
7已知a=3,b=4,c=5,则逻辑表达式!
(a>b)&&!
c||1的值为1.
8for循环语句只能用于循环次数确定的情况下.
9break语句能够终止当前进行的多层循环.
10for循环的三个表达式都可以省略.
11下列程序段是否正确:
inta[10];
....
a++;
12定义一维数组的形式为:
类型说明数组名[表达式],其中表达式必须是整型常量.
13字符串"Dalian"在内存中的存储长度是7.
14字符串"Dalian"在内存中的存储长度是7.
15字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面.
16静态局部变量是在编译时被初始化的,故它只被赋初值一次.
17被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.
18假设有inta[10],*p;则p=&a[0]与p=a等价
19typedef可以定义生成新的数据类型.
20用fopen("file","r+");打开的文件"file"可以进行修改。
三、填空题
1、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:
a*=16+(b++)-(++c);后,a的值是_____.
2若所用变量都已正确定义,请填写以下程序段的输出结果_____.
for(i=1;i<=5;i++);
printf("OK");
3c语言表达式!
(4>=6)&&(3<=7)的值是_____.
4设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是_____.
for(x=0,y=0;y!
=123&&x<3;x++)
scanf("%d",&y);
5按内存排列顺序,数组chara[2]中的所有元素是a[0]和_____.
6函数不可以进行嵌套定义,但可以进行嵌套_____.
7将数组a的首地址赋给指针变量p的语句是_____.
8设有以下结构类型说明和变量定义,则变量a在内存所占字节数是_____。
structstud{charnum[6];floats[4];doubleave;}a,*p;
四、程序设计
1、【程序设计】
功能:
把20个随机数存入一个数组,然后输出该数组中的
最小值。
其中确定最小值的下标的操作在fun函数中
实现,请给出该函数的定义。
------------------------------------------------
#include"stdio.h"
#include"stdlib.h"
#defineVSIZE20
intvector[VSIZE];
intfun(intlist[],intsize)
{
/*********Begin**********/
/**********End**********/
}
main()
{
inti;
voidNONO();
for(i=0;i { vector[i]=rand(); printf("Vector[%d]=%6d\n",i,vector[i]); } i=fun(vector,VSIZE); printf("\nMininum: Vector[%d]=%6d\n",i,vector[i]); NONO(); } voidNONO() { inti,t; FILE*fp; fp=fopen("out.dat","w"); for(i=0;i { fprintf(fp,"Vector[%d]=%6d\n",i,vector[i]); } t=fun(vector,VSIZE); fprintf(fp,"\nMininum: Vector[%d]=%6d\n",t,vector[t]); fclose(fp); } 2、功能: 求k! (k〈13),所求阶乘的值作为函数值返回。 (要求使用递归) ------------------------------------------------*/ #include"stdio.h" #include"conio.h" longfun(intk) { /*********Begin**********/ /**********End**********/ } main() { intm; voidTestFunc(); printf("Enterm: "); scanf("%d",&m); printf("\nTheresultis%ld\n",fun(m)); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; ints; intt; longo; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } for(s=1;s<=5;s++) { fscanf(IN,"%d",&t); o=fun(t); fprintf(OUT,"%ld\n",o); } fclose(IN); fclose(OUT); } 五、程序改错 1、功能: 求1到10的阶乘的和。 ------------------------------------------------------*/ #include"stdio.h" main() { inti; floats=0; floatfac(intn); /**********ERROR**********/ for(i=1;i<10;i++) /**********ERROR**********/ s=fac(i); printf("%f\n",s); } floatfac(intn) { /**********ERROR**********/ inty=1; inti; for(i=1;i<=n;i++) y=y*i; /**********ERROR**********/ return; } 2、功能: 实现交换两个整数的值。 例如: 给a和b分别输入3和6,输出为a=6b=3 ------------------------------------------------------*/ #include"stdio.h" /**********ERROR**********/ voidfun(inta,b) { intt; /**********ERROR**********/ t=a; /**********ERROR**********/ a=b; /**********ERROR**********/ b=t; } main() { inta,b; printf("entera,b: ");scanf("%d%d",&a,&b); fun(&a,&b); printf("a=%db=%d\n",a,b); } 六、程序填空 1、功能: 调用函数fun计算m=1-2+3-4+……+9-10,并输出结果。 -------------------------------------------------------*/ #include"stdio.h" intfun(intn) { intm=0,f=1,i; /***********FILL***********/ for(i=1;_____;i++) { m+=i*f; /***********FILL***********/ _____; } /***********FILL***********/ return_____; } main() { printf("m=%d\n",fun(10)); } 2、题目: 输出连接后的字符串。 -------------------------------------------------------*/ #include"stdio.h" /***********FILL***********/ _____ main() { charss[10]="12345"; strcat(ss,"6789"); /***********FILL***********/ printf(_____,ss); } C语言模拟题 (二) 一、判断题 1若变量均已正确定义并赋值,以下合法的C语言赋值语句是()。 A、x+n=I; B、x==5; C、x=n/2.5; D、5=x=4+1; 2下述错误的C语言常量是: (). A、0xf B、5. C、090 D、.25 3根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法? ()。 (规定用字符串[CR]表示回车,U表示空格) main() {inta; charc1,c2; scanf("%d%c%c",&a,&c1,&c2); } A、123UoUk[CR] B、123ok[CR] C、123Uok[CR] D、123oUk[CR] 4已知键入a=4,b=3,执行下面程序输出的结果是(). main() {inta,b,s; scanf("%d%d",&a,&b); s=a; if(a>b)s=b; s=s*s; printf("%d\n",s); } A、13 B、9 C、16 D、15 5执行下面程序段后,i的值是(). inti=10; switch(i) {case9: i+=1; case10: i--; case11: i*=3; case12: ++i; } A、28 B、10 C、9 D、27 6以下不是无限循环的语句为()。 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下面程序段运行的结果是(). x=-1; do{ x=x*x; }while(! x); A、循环执行一次 B、有语法错误 C、死循环 D、循环执行两次 8若有说明: inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是()。 A、3 B、无确定值 C、4 D、2 9若定义inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g; 则数值为4的表达式是(). A、a[4] B、a[g-c] C、a['d'-'c'] D、a['d'-c] 10以下叙述中正确的是()。 A、可以在一个函数中定义另一个函数 B、main()函数必须放在其它函数之前 C、构成C程序的基本单位是函数 D、所有被调用的函数一定要在调用之前进行定义 11下述函数的功能是(). intfun(char*x) {char*y=x; while(*y++); returny-x-1; } A、比较两个字符串的大小 B、求字符串存放位置 C、求字符串的长度 D、将字符串x连接到字符串y后面 12在执行"文件包含"命令时,下列说法正确的是(). A、作为一个源程序编译,得到一个目标文件. B、一个include命令可指定多个被包含文件. C、在编译时作为两个文件联结. D、被包含的文件可以是源文件或目标文件. 13在说明语句: int*f();中,标识符f代表的是()。 A、一个返回值为指针型的函数名 B、一个用于指向函数的指针变量 C、一个用于指向一维数组的行指针 D、一个用于指向整型数据的指针变量 14下面程序的输出结果应该是(). chars[]="ABCD"; main() {char*p; for(p=s;p printf("%s",p); } A、DCBA B、ABCDBCDCDD C、ABCDABCABA D、ABCD 15设有如下定义: structsk{inta;floatb;}data,*p; 若要使p指向data中的a域,正确的赋值语句是()。 A、p=(structsk*)data.a; B、*p=data.a; C、p=&data.a; D、p=&data,a; 二、判断题 1在C程序中,%作为运算符时,是只能用于整数运算。 2若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。 3格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数. 4整型变量在全部范围内可以用字符格式输出. 5已知a=3,b=4,c=5,则逻辑表达式! (a+b)+c-1&&b+c/2的值为0. 6语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b? a: b取代. 7已知a=4,b=2,c=3,d=5,表达式a>b? a: c c: d的值为4. 8for循环的三个表达式都可以省略. 9continue语句对于while和do-while循环来说,意味着转去计算While表达式. 10for语句的循环体至少执行一次. 11语句charch[12]={"CProgram"};与语句charch[]="CProgram";具有不同的赋初值功能. 12定义chars[9];gets(s);若输入的字符串是Turboc↙(↙代表按回车键操作)则输入给数组s中的字符个数是7. 13对静态数组的初始化是在编译阶段完成的. 14C语言中,通过函数调用只能获得一个返回值. 15字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 16函数的返回值可以通过函数中的return语句获得。 17被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去. 18char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。 19对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。 20用fopen("file","r+");打开的文件"file"可以进行修改。 三、填空题 1设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_____. 2以下程序的输出结果为_____,#include"stdio.h"main(){inta=010,j=10;printf("%d,%d\n",++a,j--);} 3设a,b,c,t为整型变量,初值为a=3,b=4,c=5,执行完语句t=! (a+b)+c-1&&b+c/2后,t的值是_____. 4若输入字符串: abcde<回车>,则以下while循环体将执行_____次.while((ch=getchar())=='e')printf("*"); 5若有以下数组a,数组元素: a[0]~a[9],其值为941282107513该数组的元素中,数值最小的元素的下标值是_____. 6函数不可以进行嵌套定义,但可以进行嵌套_____. 7在c程序中,只能给指针变量赋NULL值和_____值. 8设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是_____。 unionstud{charnum[6];floats[4];doubleave;}a,*p; 四、程序设计 1、功能: 将字符串中的小写字母转换为对应的大写字母, 其它字符不变。 ------------------------------------------------*/ #include"string.h" #include"stdio.h" voidchange(charstr[]) { /*********Begin**********/ /**********End**********/ } main() { voidchange(); charstr[40]; voidTestFunc(); gets(str); change(str); puts(str); TestFunc(); } voidTestFunc() { FILE*IN,*OUT; chari[200]; IN=fopen("in.dat","r"); if(IN==NULL) { printf("ReadFileError"); } OUT=fopen("out.dat","w"); if(OUT==NULL) { printf("WriteFileError"); } fscanf(IN,"%s",i); change(i); fprintf(OUT,"%s\n",i); fclose(IN); fclose(OUT); } 2、功能: 从低位开始取出长整型变量s中偶数位上的数,依次 构成一个新数放在t中。 例如: 当s中的数为: 7654321时,t中的数为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模拟