C语言模拟题.docx

上传人:b****4 文档编号:5349529 上传时间:2023-05-08 格式:DOCX 页数:40 大小:73.47KB
下载 相关 举报
C语言模拟题.docx_第1页
第1页 / 共40页
C语言模拟题.docx_第2页
第2页 / 共40页
C语言模拟题.docx_第3页
第3页 / 共40页
C语言模拟题.docx_第4页
第4页 / 共40页
C语言模拟题.docx_第5页
第5页 / 共40页
C语言模拟题.docx_第6页
第6页 / 共40页
C语言模拟题.docx_第7页
第7页 / 共40页
C语言模拟题.docx_第8页
第8页 / 共40页
C语言模拟题.docx_第9页
第9页 / 共40页
C语言模拟题.docx_第10页
第10页 / 共40页
C语言模拟题.docx_第11页
第11页 / 共40页
C语言模拟题.docx_第12页
第12页 / 共40页
C语言模拟题.docx_第13页
第13页 / 共40页
C语言模拟题.docx_第14页
第14页 / 共40页
C语言模拟题.docx_第15页
第15页 / 共40页
C语言模拟题.docx_第16页
第16页 / 共40页
C语言模拟题.docx_第17页
第17页 / 共40页
C语言模拟题.docx_第18页
第18页 / 共40页
C语言模拟题.docx_第19页
第19页 / 共40页
C语言模拟题.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言模拟题.docx

《C语言模拟题.docx》由会员分享,可在线阅读,更多相关《C语言模拟题.docx(40页珍藏版)》请在冰点文库上搜索。

C语言模拟题.docx

C语言模拟题

C语言模拟题

(一)

一、选择题

1、以下字符中不是转义字符的是(A)。

A'\c'

B、'\b'

C'\\'

D'\a'

2、设a=12,且a定义为整型变量。

执行语句a+=a-=a*=a;后a的值为(A)

A0

B、144

C132

D12

3、已定义floatx=1.25,y=3.37;

根据下面的输出结果,正确的输出语句是(C).

y+x=4.62,y-x=2.12

Aprintf("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);,l

Cprintf("y+x=%.2f,y-x=%.2f\n",y+x,y-x);

Dprintf("y+x=%5.2f,y=%5.2f\n",y+x,y-x);

4、执行下面程序段后,b的值为(A).

ints=35;

chart='A';

intb;

b=((s&&4)&&(tv'a'));

B、3

C2

D0

5k是整型,则以下程序段的执行结果是:

(B)

k=-3;

if(kv=O)printf("####")elseprintf("&&&&");

A####

B、有语法错误,无结果

C&&&&

D####&&&&6设j和k都是int类型,则下面的for循环语句(D)for(j=0,k=0;jv=9&&k!

=876;j++)scanf("%d",&k);

A最多执行9次

B、是无限循环

C循环体一次也不执行

D最多执行10次

7以下正确的描述是(A).

A、只能在循环体内和switch语句内使用break语句

B、continue语句的作用是终止整个循环的执行

C从多层嵌套的外层循环中退出时,只能使用goto语句

D在循环体内使用break和continue语句的作用相同

8以下能对一维数组a进行正确初始化的语句是(B)。

Ainta[1O]={};

B、inta[]={0};

Cinta[10]={10*1};

Dinta[10]=(0,0,0,0,0)

9以下正确的说法是(A).

A、函数的类型决定返回值的类型

B、定义函数时,形参的类型说明可以放在函数体内

Creturn后面不能为表达式

D如果形参与实参的类型不一致,以实参类型为准

10以下程序的输出结果为(C。

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)));

}

A9

B、15

C13

D函数调用出错

11以下正确的说法是(D)o

A用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调

B、用户若需调用标准库函数,调用前必须重新定义

C系统根本不允许用户重新定义标准库函数

D用户可以重新定义标准库函数,若如此,该函数将失去原有含义

12在#include命令中,文件名可用双引号或尖括号括起来,对于二者的下列说法中正确的是

(A).

A用尖括号时,直接按系统标准方式检索文件目录.

B、用双引号时,直接按系统标准方式检索文件目录.

C用双括号和尖括号时,都不检查源文件所在的文件目录.

D以上说法都不对.

13当说明一个结构体变量时系统分配给它的内存是(D)o

A成员中占内存量最大者所需的容量

B、结构中第一个成员所需内存量

C结构中最后一个成员所需内存量

D各成员所需内存量的总和

14以下程序段给数组所有的元素输入数据,请选择正确答案填入(C)

#include

main()

{inta[1O],i=O;'

while(i<1O)scanf("%d",());

}

A&a[i+1]

B、a+i

Ca+(i++)

D&a[++i]

15在定义构造数据类型时,不能(A)。

A、末尾不写分号

B、说明存储类型

C初始化

D说明变量

二、判断题

1、在C程序中,%作为运算符时,是只能用于整数运算。

2、若有inti=10,j=2;则执行完i*=j+8;后i的值为28。

格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N

3、格式字符%g选用%e或%f格式中输出宽度较长的一种格式输出实数.N

4charc[6]="abcde";printf("%3s",c)表示输出的字段的宽度为3位,如果被输出的数据

的位数大于3,只输出3位数.N

5设x=1,y=2,z=3,则逻辑表达式x-y>z&&y!

=z的值为0.丫

6运算符的级别由高向低依次为!

->算术运算符->关系运算符->逻辑运算符->赋值运算符.Y

7已知a=3,b=4,c=5,则逻辑表达式!

(a>b)&&!

c||1的值为1.Y

8for循环语句只能用于循环次数确定的情况下.N

9break语句能够终止当前进行的多层循环.Nh

10for循环的三个表达式都可以省略.Y

11下列程序段是否正确:

N

inta[10];

a++;kl

12定义一维数组的形式为:

类型说明数组名[表达式],其中表达式必须是整型常量.N

13字符串"Dalian"在内存中的存储长度是7.N

14字符串"Dalian"在内存中的存储长度是7.N

15字符处理函数strcpy(str1,st⑵的功能是把字符串1接到字符串2的后面.N

lllllllll

16静态局部变量是在编译时被初始化的,故它只被赋初值一次.Y

17被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N

18假设有inta[1O],*p;则p=&a[0]与p=a等价Y

19typedef可以定义生成新的数据类型.N

20用fopen("file","r+");打开的文件"file"可以进行修改。

三、填空题

1、设a、b、c为整型数,且a=2、b=3、c=4,则执行完以下语句:

a*=16+(b++)-(++c);后,a

的值是__28___.

2若所用变量都已正确定义,请填写以下程序段的输出结果_OK.

for(i=1;i<=5;i++);

printf("OK");

3c语言表达式!

(4>=6)&&(3<=7)的值是__1___.

4设x和y均为int型变量,则以下for循环中的scanf语句最多可执行的次数是3__.

for(x=0,y=0;y!

=123&&x<3;x++)

scanf("%d",&y);

5按内存排列顺序,数组chara[2]中的所有元素是a[0]和__a[1]_.

6函数不可以进行嵌套定义,但可以进行嵌套__调用—.

7将数组a的首地址赋给指针变量p的语句是_p=a;.

8设有以下结构类型说明和变量定义,则变量a在内存所占字节数是__30。

structstud

{charnum[6];floats[4];doubleave;}a,*p;

四、程序设计

1、【程序设计】

功能:

把20个随机数存入一个数组,然后输出该数组中的

最小值。

其中确定最小值的下标的操作在fun函数中

实现,请给出该函数的定义。

#include"stdio.h"

#include"stdlib.h"

#defineVSIZE20intvector[VSIZE];

intfun(intlist[],intsize)

{

}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)

{

/*********Begjn**********/

/**********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、功能:

实现交换两个整数的值

例如:

给和b分别输入和6,输出为=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

f

u

m

#include"stdio.h"intfun(intn)

{intm=0,f=1,i;

/***********

FILL*

********

for(i=1;;i++)

m+=i*f;

FILL*

return

}main()

{

printf("m=%d\n",fun(1O));

}

2、题目:

输出连接后的字符串

*/

#include"stdio.h"

FILL*

********

 

main()

{

charss[10]="12345";

strcat(ss,"6789");

/***********FILL***********

printf(,ss);

}

 

C语言模拟题

(二)

 

、判断题

1若变量均已正确定义并赋值,以下合法的C语言赋值语句是(C)

Ax+n=l;

B、x==5;

Cx=n/2.5;

D5=x=4+1;

2下述错误的C语言常量是:

(C).

A0xf

B、5.

C090

D.25

?

(B)

3根据下面的程序,使a=123,c1='o',c2='k'哪一种是正确的键盘输入方法

(规定用字符串[CR]表示回车,U表示空格)

main()

{inta;

charc1,c2;

scanf("%d%c%c",&a,&c1,&c2);

}

A123UoUk[CR]

B、123ok[CR]

C123Uok[CR]

D123oUk[CR]

4已知键入a=4,b=3,执行下面程序输出的结果是(B).

main()

{inta,b,s;

scanf("%d%d",&a,&b);

s=a;

if(a>b)s=b;

s=s*s;

printf("%d\n",s);

}

A13

B、9

C16

D15

5执行下面程序段后,i的值是(A).

inti=10;

switch(i)

{case9:

i+=1;

case10:

i--;

case11:

i*=3;

case12:

++i;

}

A28

B、10

C9

D27

6以下不是无限循环的语句为(D。

A、while

(1){x++;}

B、for(;;x++=i);

Cfor(i=10;;i--)sum+=i;

Dfor(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若有说明:

inta[][3]={1,2,3,4,5,6,7};贝Ua数组第一维的大小是(A)

A3

B、无确定值

C4

D2

9若定义inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc='a',d,g;

则数值为4的表达式是(D).

Aa[4]

B、a[g-c]

Ca['d'-'c']

Da['d'-c]

10以下叙述中正确的是(C。

A可以在一个函数中定义另一个函数

B、main()函数必须放在其它函数之前

C构成C程序的基本单位是函数

D所有被调用的函数一定要在调用之前进行定义

11下述函数的功能是(C).

intfun(char*x)

{char*y=x;

while(*y++);

returny-x-1;

}

A、比较两个字符串的大小

B、求字符串存放位置

C求字符串的长度

D将字符串x连接到字符串y后面

12在执行"文件包含"命令时,下列说法正确的是(A).

A、作为一个源程序编译,得到一个目标文件.

B、一个include命令可指定多个被包含文件.

C在编译时作为两个文件联结.

D被包含的文件可以是源文件或目标文件

13在说明语句:

int*f();中,标识符f代表的是(A)。

A一个返回值为指针型的函数名

B、一个用于指向函数的指针变量

C一个用于指向一维数组的行指针

D一个用于指向整型数据的指针变量

14下面程序的输出结果应该是(B).

chars[]="ABCD";

main()

{char*p;

for(p=s;p

printf("%s",p);

}

ADCBA

B、ABCDBCDCDD

CABCDABCABA

DABCD

15设有如下定义:

structsk{inta;floatb;}data,*p;

若要使p指向data中的a域,正确的赋值语句是(0。

Ap=(structsk*)data.a;

B、*p=data.a;

Cp=&data.a;

Dp=&data,a;

二、判断题

1在C程序中,%作为运算符时,是只能用于整数运算。

2若a=3,b=2,c=1则关系表达式"(a>b)==c"的值为"真"。

3格式字符%g选用%6或%f格式中输出宽度较长的一种格式输出实数.N

4整型变量在全部范围内可以用字符格式输出.N

5已知a=3,b=4,c=5,则逻辑表达式!

(a+b)+c-1&&b+c/2的值为0.N

6语句if(a>b)printf("%d",a);elseprintf("%d",b);可以用条件表达式a>b?

a:

b取代N.

7已知a=4,b=2,c=3,d=5,表达式a>b?

a:

c

c:

d的值为4.Y

8for循环的三个表达式都可以省略.Y

9continue语句对于while和do-while循环来说,意味着转去计算While表达式丫.

10for语句的循环体至少执行一次.N

11语句charch[12]={"CProgram"};与语句charch[]="CProgram";具有不同的赋初值

功能.N

12定义chars[9];gets(s);若输入的字符串是Turboc/(/代表按回车键操作)则输入给

数组s中的字符个数是7.Y

13对静态数组的初始化是在编译阶段完成的.Y

14C语言中,通过函数调用只能获得一个返回值.N

15字符处理函数strcpy(str1,st⑵的功能是把字符串1接到字符串2的后面.N

16函数的返回值可以通过函数中的return语句获得。

17被包含文件是在编译时先单独生成目标文件,然后连接到可执行文件中去.N

18char*p="girl";的含义是定义字符型指针变量p,p的值是字符串"girl"。

N

19对于不同类型的数据,若想合成一个有机的整体,可以引用结构体进行定义。

20用fopen("file","r+");打开的文件"file"可以进行修改。

三、填空题

1设x的值为15,n的值为2,则表达式x%=(n+=3)运算后x的值是_0_.

2以下程序的输出结果为__9,10,#include"stdio.h"main(){int

a=O1O,j=1O;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的值

是1.

4若输入字符串:

abcdev回车>,则以下while循环体将执行__0次.

while((ch=getchar())=='e')printf("*");

5若有以下数组a,数组元素:

a[0]~a[9],其值为941282107513该数

组的元素中,数值最小的元素的下标值是__8___.

6函数不可以进行嵌套定义,但可以进行嵌套_调用.

7在c程序中,只能给指针变量赋NULL值和—地址___值.

8设有以下共用体类型说明和变量定义,则变量a在内存所占字节数是_16。

union

stud{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中的数为:

642。

*/

#include"stdio.h"

longfun(longs,longt)

/**********End**********/

}

returnt;

}

main()

{

longs,t,m;

voidTestFunc();

printf("\nPleaseenters:

");scanf("%ld",&s);

m=fun(s,t);

printf("Theresultis:

%ld\n",m);

TestFunc();

}voidTestFunc()

{

FILE*IN,*OUT;

intn;

longi,t,m;

IN=fopen("in.dat","r");

if(IN==NULL)

{printf("ReadFileError");

}

OUT=fopen("out.dat","w");

if(OUT==NULL)

{

printf("WriteFileError");

}

for(n=0;n<5;n++)

{

fscanf(IN,"%ld",&i);m=fun(i,t);fprintf(OUT,"%ld\n",m);

}

fclose(IN);

fclose(OUT);

}

五、程序改错

1、功能:

猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

#include"stdio.h"main()

{intday,x1,x2;day=9;

/********************

x2==1;

while(day>0)

{

**********ERROR**********/

x1=(x2+1)/2;

x2=x1;

**********ERROR**********/

day++;

}

printf("thetotalis%d\n",x1);

}

2、功能:

将s所指字符串的反序和正序进行连接形成一个新

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2