C语言模拟题1.docx

上传人:b****4 文档编号:24871060 上传时间:2023-06-02 格式:DOCX 页数:14 大小:20.27KB
下载 相关 举报
C语言模拟题1.docx_第1页
第1页 / 共14页
C语言模拟题1.docx_第2页
第2页 / 共14页
C语言模拟题1.docx_第3页
第3页 / 共14页
C语言模拟题1.docx_第4页
第4页 / 共14页
C语言模拟题1.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言模拟题1.docx

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

C语言模拟题1.docx

C语言模拟题1

C语言模拟题

一、填空题

1、C语言中没有逻辑量,在给出逻辑运算结果时,以1代表“真”,用0代表“假”。

2、一个C源程序中至少应包括一个main函数。

3、C源程序的基本单位是函数。

4、为表示关系X≥Y≥Z,应使用C语言表达式(x<=y)&&(y>=z)。

5、若有以下定义:

doublew[10];则w数组元素下标的上限是0,下限是9。

6、若有以下定义:

doublew[5];则数组w下标的上限是4。

7、执行语句:

for(i=1;i++<4;);后,变量i的值是5。

6、在C语言中的实型变量分为两种类型,它们是单精度实型、双精度实型。

7、语句"printf("%x,%o",16,12);"的输出结果是10,14。

8、当a=5,b=4,c=1时,表达式a>b!

=c的值是0。

9、若有定义:

charc=’\010’;则变量c中包含的字符数为1。

10、C语言中的标识符只能由三种字符组成,它们是字母、数字、下划线。

11、若k为int型且赋值11。

请写出运算k++后表达式的值为11,变量的值为12。

12、在C语言程序中,如果对函数f的类型未加显说明,则函数f的隐含类型是int。

13、二维数组中元素在内存中的存放顺序是按行存放,先顺序存放第一行的元素,再存放第二行的元素。

14、设有定义inta=12,b=12;则语句printf("%d%d\n",--a,++b);的输出结果是:

1113。

15、当a=3,b=2,c=1时,表达式f=a>b>c的值为_____0_________。

二、选择题

1、C语言可执行程序的开始执行点是(c)

A、程序中第一条可执行语言B、程序中第一个函数

C、程序中的main函数D、包含文件中的第一个函数

2、以下叙述中不正确的是(d)

A、在函数中,通过return语句传回函数值

B、在函数中,可以有多条return语句

C、在C中,main后的一对圆括号中也可以带有形参

D、在C中,调用函数,必需在一条独立的语句中完成

3、对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的(a)。

A、0为假,非0为真B、只有1为真

C、-1为假,1为真C、0为真,非0为假

4、以下字符中,不正确的C语言转义字符是(d)

A、‘\t’B、‘\011’C、‘\n’D、‘\018

5、C语言中运算对象必需是整型的运算符是(a)

A、%B、/C、!

D、*

6、putchar函数可以向终端输出一个(d)

A、整型变量表达式值B、实型变量值

C、字符串D、字符或字符型变量值

7、下列各语句定义了数组,其中哪一个是正确的(d)。

A、inta[5],b[2,3];B、charno(30);

C、intx[];D、intx[5]={1,2,3};

8、数组定义为"inta[4][5];",引用"*(a+1)+2"表示(b)。

A、a[1][0]+2B、a数组第1行第2列元素的地址

C、a[0][1]+2D、a数组第1行第2列元素的值

9、a是int类型变量,c是字符变量。

下列输入语句中哪一个是错误的(b)。

A、scanf("%d,%c",&a,&c);B、scanf("%d%c",a,c);

C、scanf("%d%c",&a,&c);D、scanf("d=%d,c=%c",&a,&c);

10、将整型变量a、b中的较小值为变量c赋值,下列语句中正确的是(c)。

A、c==(a

a:

b;B、c=if(a

C、c=(a

a:

b;D、(a

c=a:

c=b;

11、将整型变量a、b中的较大值为变量c赋值,下列语句中正确的是(b)。

A、c==(a>b)?

a:

b;B、c=(a>b)?

a:

b;

C、c=if(a>b)aelseb;D、(a>b)?

c=a:

c=b;

12、逻辑运算符中,运算优先级按从高到低依次为(d)。

A、&&,!

||B、||,&&,!

C、&&,||,!

D、!

,&&,||

13、在C语言程序中(C)

A、函数的定义可以嵌套,但函数的调用不可以嵌套

B、函数的定义和函数的调用均不可以嵌套

C、函数的定义不可以嵌套,但函数的调用可以嵌套

D、函数的定义和函数的调用均可以嵌套

15、若变量已正确定义并赋值,符合C语言语法的表达式是(A)

A、a=7+b+c,a++B、a=a+7;C、int(12.3%4)D、a=a+7=c+b

16、设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(c)

A.10,11,12B.11,12,12C.10,12,12D.11,11,12

17、已知ch是字符型变量,下面正确的赋值语句是(a)

A、ch=’\123’;B、ch=’xfff’;C、ch=’\08’;D、ch=’\’;

18、以下函数调用语句中,含有的实参个数是(b)

A、1B、2C、4D、5

Func((exp1,exp2),(exp3,exp4,exp5));

19、以下叙述中正确的是(d)

A、输入项可以是一个实型常量,如scanf("%f",3.5);

B、只有格式控制,没有输入项,也能正确输入数据到内存,如:

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

C、当输入一个实型数据时,格式控制可以规定小数点后的位数,如:

scanf("%4.2f",&f);

D、当输入数据时,必须指明变量地址,例如:

scanf("%f",&f);

20、程序运行输出了错误的结果,可以排除下列哪一个因素(c)。

A.算法错误B、运行时输入数据错误

C、未通过编译D、系统资源配置不当

21、要为字符型变量a赋初值,下列语句中哪一个是正确的(a)。

A、chara=’3’;B、chara="3";

C、chara=%;D、chara=*;

22、数组定义为"inta[4][5];",引用"a[1]+3"表示(a)。

A、a数组1行3列元素的地址B、a数组第1行第3列元素的值

C、a数组第4行的首地址D、a数组第4列的首地址

三、程序阅读

以下程序的输出结果为-1。

main()

{intx=2;

while(x--);

printf(“%d\n”,x);

}

2、以下程序的运行结果是6。

main()

{intm=5;

if(m++>5)printf(“%d\n”,m);

elseprintf(“%d\n”,m--);

}

3、当执行以下程序段后,i的值为5、j的值为4、k的值为6。

inta,b,c,d,i,j,k;

a=10;b=c=d=5;i=j=k=0;

for(;a>b;++b)i++;

while(a>++c)j++;

dok++;while(a>d++);

4、以下程序的输出结果是8。

main()

{intk=2,m=4,n=6;

int*pk=&k,*pm=&m,*p;

*(p=&n)=*pk*(*pm);

printf(“%d\n”,n);

}

5、以下程序的输出结果是4。

fun1(inta,intb)

{intc;

a+=a;b+=b;

c=fun2(a,b);

returnc*c;

}

fun2(inta,intb)

{intc;

c=a*b%3;

returnc;

}

main()

{intx=11,y=19;

printf(“%d\n”,fun1(x,y));

}

6、以下程序的输出结果是z=7,r=21。

func(inta,intb)

{intc;

c=a+b;

returnc;

}

main()

{intx=6,y=7,z=8,r;

r=func((x--,y++,x+y),z--);

printf(“z=%d,r=%d\n”,z,r);

}

7、以下程序的输出结果为23.

main()

{intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

for(i=0;i<2;i++)

{if(i==0)

aa[i][i+1]=*p+1;

else++p;

printf(“%d”,*p);

}

printf(“\n”);

}

8、下列程序运行的输出结果:

7,5。

#defineX5

#defineYX+1

#defineZY*X/2

main()

{inta;

a=Y;

printf("%d,%d\n",Z,--a);

}

四、程序填空

findmax返回数组s中最大元素的下标,数组中元素的个数由t传入,请填空。

findmax(ints[],intt)

{intk,p;

for(p=0,k=p;p

if(s[p]>s[k])k=p;

returnk;

}

有以下程序段:

s=1.0;

for(k=1;k<=n;k++)s=s+1.0/(k*(k+1));

printf(“%f\n”,s);

请填空,使下面的程序段的功能完全与之等同。

s=0.0;

d=1.0;

k=0;

do

{s=s+d;

k++;

d=1.0/(k*(k+1));

}

while(k<=n);

printf(“%f\n”,s);

3、以下程序统计从终端输入的字符中每个大写字母的个数,num[0]中统计字母A的个数,其他依次类推。

用回车符结束输入,请填空。

#include“stdio.h”

#include“ctype.h”

main()

{intnum[26]={0},i;

charc;

while((c=getchar(())!

=’\r’)

if(isupper(c))num[c-‘A’]+=1;

for(i=0;i<26;i++)

if(num[i])printf(“%c:

%d\n”,i+’A’,num[i]);

}

4、以下fun函数的功能是将一个字符串的内容颠倒过来,请填空。

#include“string.h”

voidfun(charstr[])

{inti,j,k;

for(i=0,j=strlen(str)-1;i

{k=str[i];str[i]=str[j];str[j]=k;}

}

5、以下程序的功能是:

从键盘上输入若干学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

请填空。

main()

{floatx,amax,amin;

scanf(“%f”,&x);

amax=x;amin=x;

while(x>=0)

{if(x>amax)amax=x;

elseif(x

scanf(“%f”,&x);

}

printf(“\namax=%f\namin=%f\n”,amax,amin);

}

6、输入若干字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。

#include

voidmain()

{charch;ints1=0,s2=0;

while((ch=getchar())!

='\n')

{if(ch>='0'&&ch<='9')s1++;

if((ch>='a'&&ch<='z')||ch>=’A’&&ch<=’Z’)s2++;}

printf(“%d,%d\n”,s1,s2);

}

编程题

输入一行数字字符(以回车符结束输入),请用数组元素作为计数器来统计每个数字字符的个数,并输出统计结果。

用下标为0的元素统计字符’0’的个数,下标为1的元素统计字符’1’的个数,…。

#include

main()

{

intnum[10]={0},i;

charc;

c=getchar();

while(c!

='\n'){

num[c-'0']+=1;

c=getchar();

}

2、下面findmax函数将计算数组中的最大元素及其下标值和地址值,请编写*findmax()函数。

#include

*findmax(int*s,intt,int*k)

main()

{

inta[10]={12,23,34,45,56,67,78,89,11,22},k,*add;

add=findmax(a,10,&k);

printf(“%d,%d,%o\n”,a[k],k,add);

}

*findmax(int*s,intt,int*k)

{

intp;

for(p=0,*k=p;p

if(s[p]>s[*k])*k=p;

returns+*k;

}

3、编写程序,求1-3+5-7+…-99+101的值。

#include

main()

{

intI,s=0;

for(I=0;I<=50;I++)

if(I/2==0)s+=2*I+1;

elses-=2*I+1;

printf(”计算结果为:

%d”,s);

}

4、编写函数invert将数组中的数按颠倒的顺序重新存放。

在操作时,只能借助一个临时存储单元而不得另外开辟数组。

/*参数n为数组中的元素个数*/

voidinvert(inta[],intn)

{

inti,j,t;

for(i=0,j=n-1;i

{t=a[i];a[i]=a[j];a[j]=t;}

}

5、函数maxmin完成的功能是:

对传送过来的三个数选出最大和最小数,并通过形参传回调用函数。

试编写该函数,

#include

voidmaxmin(inta,intb,intc,int*max,int*min)

{

if(a>b){*max=a;*min=b;}

else{*max=b;*min=a;}

if(c>*max)*max=c;

if(c<*min)*min=c;

}

main()

{inta,b,c,max,min;

printf("pleaseinputthreeinteger:

");

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

maxmin(a,b,c,&max,&min);

printf("a=%d,b=%d,c=%d,max=%d,min=%d",a,b,c,max,min);

}

#include

intAverage(intx,inty)

{

intresult;

result=(x+y)/2;

returnresult;

returnx;

}

main()

{

inta=12;

intb=24;

intave=Average(a,b);

printf("Averageof%dand%dis%d.\n",a,b,ave);

}

a

–代表二维数组的首地址,第0行的地址

a+i

–代表第i行的地址

*(a+i)即a[i]

–代表第i行第0列的地址

*(a+i)+j即a[i]+j

–代表第i行第j列的地址

*(*(a+i)+j)即a[i][j]

–代表第i行第j列的元素

 

元素a[i][j]的地址的几种等价的引用方式

–&a[i][j]

–a[i]+j

–*(a+i)+j

–&(*(a+i))[j]

元素a[i][j]的几种等价的引用方式

–a[i][j]

–*(a[i]+j)

–*(*(a+i)+j)

–(*(a+i))[j]

 

格式输入函数

常见错误

–scanf("%d,%f\n”,&a,&b);

–scanf("%d,%f”,a,b);

–scanf("%7.2f",&a);

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

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1