c语言题库试题.docx

上传人:b****8 文档编号:28333181 上传时间:2023-07-10 格式:DOCX 页数:24 大小:378.41KB
下载 相关 举报
c语言题库试题.docx_第1页
第1页 / 共24页
c语言题库试题.docx_第2页
第2页 / 共24页
c语言题库试题.docx_第3页
第3页 / 共24页
c语言题库试题.docx_第4页
第4页 / 共24页
c语言题库试题.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

c语言题库试题.docx

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

c语言题库试题.docx

c语言题库试题

C语言模拟试题8338

一选择题选择题答案:

DDDBBCDCDB

1.执行下面程序,输入数据,使得i=10,k='a',j=15,正确的键盘操作是()

#include

intmian()

{

inti,j,k;

scanf("%d%c%d",&i,&k,&j");

printf("i=%d,j=%c,k=%d\n",i,k,j);

return0;

}

A.B.

B.D.

(A)10,a,15<回车>

(B)10<回车>a<回车>15<回车>

(C)10'a'15<回车>

(D)10a15<回车>

2.若intx,y;doublez;以下不合法的scanf函数调用语句是()

(A)scanf("%d%x,%e",&x,&y,&z);

(B)scanf("%2d%d%lf",&x,&y,&z);

(C)scanf("%x%*d%o",&x,&y);

(D)scanf("%x%o%6.2f",&x,&y,&z);

3.c语言对函数if语句的规定是:

else总是与()

(A)其之前最近if配对

(B)第一个if配对

(C)缩进位置相同的if配对

(D)其之前最近的且尚未配对的if配对

4.设:

inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()

(A)1(B)2

(C)3(D)4

5下列数据中属于“字符串常量”的是()

(A)ABC(B)“ABC”

(C)‘ABC’(D)‘A’

6.下列语句中,错误的是()

(A)chara[2]={1,2};

(B)inta[2]={'1','2'};

(C)chara[2]={'1','2','3'};

(D)chara[2]={'1'};

7.c语言规定,函数返回值的类型是由()

(A)return语句中的表达式类型决定

(B)调用该函数时的主调函数类型所决定

(C)调用该函数时系统临时决定

(D)在定义该函数时所指定的函数类型所决定

8.以下能对一维数组运行正确的初始化的语句是()

(A)inta[10]={0,0,0,0};

(B)inta[10]={};

(C)inta[]={0};

(D)inta[10]={10*i};

9.下列选项中正确的语句组是()

(A)chars[8];s={"Beijing};

(B)char*s;s={"Beijing"};

(C)chars[8];s="Beijing";

(D)char*s;s="Beijing";

10.下列标示符中,不能作为合法的C用户定义标示符的是()

(A)a3_b3

(B)void

(C)_123

(D)if

二程序填空题

.功能:

以下程序是用选择排序法对10个整数按升序排序。

选择排序算法如下:

找出一个数组的最大(或最小)元素并放到

最后,然后循环找出剩余元素的最大(或最小)者,每次都将该

轮最大(或最小)者放到最后。

#include

/***********SPACE***********/

【?

intmain()

{

inti,j,k,t,a[N];

printf("iutputtheunsortedarray:

\n");

for(i=0;i<=N-1;i++)

scanf("%d",&a[i]);

for(i=0;i

{

/***********SPACE***********/

【?

】;

/***********SPACE***********/

for(j=i+1;【?

】;j++)

if(a[j]

k=j;

/***********SPACE***********/

if(【?

】)

{

t=a[i];

a[i]=a[k];

a[k]=t;

}

}

printf("outputthesortedarray:

\n");

for(i=0;i<=N-1;i++)

printf("%5d",a[i]);

printf("\n");

return0;

}

 

答案#defineN10

k=i

j

k!

=i或i!

=k

三程序改错题(共2题)

【程序改错】1

功能:

求二分之一的圆面积,函数通过形参得到圆的半径,函数

返回二分之一的圆面积。

例如:

输入圆的半径值:

19.527输出为:

s=598.950017。

------------------------------------------------------*/

 

#include

#include

/**********FOUND**********/

Do

**FOUND**********/

s=1/2*3.14159*r*r;

/**********FOUND**********/

returnr;

}

voidmain()

{

floatx;

printf("Enterx:

");

scanf("%f",&x);

printf("s=%f\n",fun(x));

}

答案

Floatfun(floatr)或doublefun(floatr)

s=1.0/2.0*3.14159*r*r或s=1/2.0*3.14159*r*r等

returns;

【程序改错】2

功能:

先将在字符串s中的字符按逆序存放到t串中,然后把s中的

字符按正序连接到t串的后面。

例如:

当s中的字符串为:

“ABCDE”时,则t中的字符串应为:

“EDCBAABCDE”。

------------------------------------------------------*/

 

#include

#include

#include

voidfun(char*s,char*t)

{

/**********FOUND**********/

inti;

sl=strlen(s);

for(i=0;i

/**********FOUND**********/

t[i]=s[sl-i];

for(i=0;i

t[sl+i]=s[i];

/**********FOUND**********/

t[2*sl]="0";

}

main()

{

chars[100],t[100];

printf("\nPleaseenterstrings:

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

fun(s,t);

printf("Theresultis:

%s\n",t);

}

 

答案intI,s1;

t[i]=s[s1-i-1];

t[2*s1]=’\0’;

第四题【程序设计】

功能:

编写函数fun求一个字符串(长度不超过80)的长度,在main函数中

输入字符串,并输出其长度。

------------------------------------------------*/

#include

voidwwjt();

intfun(char*p1)

{

/**********Program**********/

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

}

intmain()

{

char*p,a[80];

intlen;

p=a;

printf("pleaseinputastring:

\n");

gets(p);

len=fun(p);

printf("Thestring'slengthis:

%d\n",len);

wwjt();

return0;

}

voidwwjt()

{

FILE*IN,*OUT;

char*pIN,sin[80];

intiOUT,i;

pIN=sin;

IN=fopen("3.IN","r");

if(IN==NULL)

{

printf("PleaseVerifyTheCurrerntDir..itMayBeChanged");

}

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

if(OUT==NULL)

{

printf("PleaseVerifyTheCurrentDir..itMayBeChanged");

}

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

{

fscanf(IN,"%s",pIN);

iOUT=fun(pIN);

fprintf(OUT,"%d\n",iOUT);

}

fclose(IN);

fclose(OUT);

}

c语言模拟试题8339

第一题选择题答案BDCBADCABA

1.下列叙述正确的是()

(A)c语言中数据类型不同,在内存中占据相同长度的储存单元

(B)c语言中数据类型不同,在内存中占据不同长度的储存单元

(C)c语言中的常量是没有类型的

(D)c语言中数据类型不同,但取值范围都是相同的

2.下列转义符中,错误的是()

(A)‘\Oxa5’

(B)‘\031’

(C)‘\b’

(D)‘\’

3.c语言执行程序的开始执行点是()

(A)程序中华第一条可以执行语言

(B)程序中第一个函数

(C)程序中的main函数

(D)包含文件中的第一个函数

4.下列选项中合法的用户标示符是()

(A)long

(B)_2Test

(C)3Dmax

(D)A.dat

5.下面不正确的字符串常量是()

(A)‘abc’

(B)“12’12”

(C)“0”

(D)“”

6.若chara[10];已正确定义,下列语句中不能从键盘上给a数组的所有元素输入值得语句是()

(A)gets(a)

(B)scanf(“%s”,a)

(C)for(i=0;i<10;i++)a[i]=getchar()

(D)a=getchar()

7.关于return语句,下列正确的是()

(A)不能在主函数中出现且在其他函数中均能出现

(B)必须在每个函数中出现

(C)可以在同一个函数中出现多次

(D)只能在除了主函数外的函数中出现一次

8.下列叙述错误的是()

(A)用户所定义的标示符允许使用关键字

(B)用户所定义的标示符应尽量做到“见名知意”

(C)用户所定义的标示符必须以字母或下划线开头

(D)用户所定义的标示符中,大小写字母代表不同标识

9.下列出现段的输出结果为()

for(i=4;i>1;i--)

for(j=1;i>1;j++)

putchar(‘#’)

(A)无

(B)#####

(C)#

(D)###

10.下面正确的赋值语句是(设chara[5],*p=a;)()

Ap=“abcd”

Ba=“abcd”

C*P=“abcd”

D*a=“abcd”

 

第二题-【程序填空】

功能:

下面的程序是求1!

+3!

+5!

+……+n!

的和。

#include

intmain()

{

longintf,s;

inti,j,n;

/***********SPACE***********/

【?

】;

scanf("%d",&n);

/***********SPACE***********/

for(i=1;i<=n;【?

】)

{

f=1;

/***********SPACE***********/

for(j=1;【?

】;j++)

/***********SPACE***********/

【?

】;

s=s+f;

}

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

return0;

}

 

答案s=0

i=i+2

i>=j或j<=i

f=f*j

第三题程序改错

【程序改错】

功能:

程序实现

-1(-10

y=0(x>10或x<=-10)

2sinx(0<=x<=10)

--------------------------------------------------------*/

#include

#include

intmain()

{

doublex,y;

/***********FOUND************/

scanf("%d",x);

/***********FOUND************/

if(0>x>-10)

y=-1;

if(x>=0&&x<=10)

/***********FOUND************/

y=2sinx;

/***********FOUND************/

if(x>10,x<=-10)

y=0;

printf("y=%f\n",y);

return0;

}

答案scanf(“%lf”,&x)

if(x<0&&x>-10)

y=2*sin(x)

if(x>10||x<=-10)

 

答案;scanf(“%d”,&n);

Doublefun(intn)

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

s=s+1.0/t或s=s+1.0/(float)t

 

【程序设计】

功能:

编写函数fun对主程序中用户输入的具有10

个数据的数组a按由大到小排序,并在主程序中输出

排序结果。

------------------------------------------------*/

#include

voidwwjt();

voidfun(intarray[],intn)

{

/**********Program**********/

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

}

intmain()

{

inta[10],i;

printf("请输入数组a中的十个数:

\n");

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

scanf("%d",&a[i]);

fun(a,10);

printf("由大到小的排序结果是:

\n");

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

printf("%4d",a[i]);

printf("\n");

wwjt();

return0;

}

voidwwjt()

{

FILE*IN,*OUT;

intn;

inti[10];

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

if(IN==NULL)

{

printf("ReadFILEError");

}

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

if(OUT==NULL)

{

printf("WriteFILEError");

}

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

{

fscanf(IN,"%d",&i[n]);

}

fun(i,10);

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

{

fprintf(OUT,"%d\n",i[n]);

}

fclose(IN);

fclose(OUT);

}

C语言模拟试题8352

第一题选择题答案BCCBCDCBAD

1.已知梯形的上底为a,下底为b,高为h,用c语言写的正确的面积公式是()

(A)1/2*(a+b)*h

(B)1.0/2*(a+b)*h

(C)1.0/2.0(a+b)h

(D)1.0/2*a+b*h

2.若有定义:

doublex;则能正确输入X值的语句是()

(A)scanf(“%f”,x)

(B)scanf(“%f”,&x)

(C)scanf(“%lf,&x”)

(D)scanf(“%5.1f”,&x)

3.以下叙述正确的是()

(A)在C程序中,main函数必须位于程序的最前面

(B)C程序的每行中只能写一条语句

(C)c语言本身没有输入输出语句

(D)在对一个C程序进行编译的过程中,可以发现注释中的拼写的错误

4.下列字符序列中,不可用作c语言标示符的是()

(A)b70(B)#ab(C)symbol(D)a_1

5.以下常量中,能够代表逻辑“真”值的常量是()

(A)‘/0’(B)0(C)‘0’(D)NULL.

6.charstr[10]=”China”;数组元素个数为()

(A)5(B)6(C)9(D)10

7.在c语言中,调用函数除函数名外,还必需有()

(A)函数预说明

(B)实际参数

(C)()

(D)函数返回值

8.以下不正确的说法是:

c语言规定()

(A)实参可以是常量,变量或表达式

(B)形参可以是常量,变量或表达式

(C)实参可以可以为任何类型

(D)形参应与其对应的实参类型一致

9.已知year为整型变量,不能使表达式(year%4==0&&year%100!

=0)||year%400==0的为“真”的数据是()

(A)1990(B)1992(C)1996(D)2000

10.已知p,p1为指针变量,a为数组名,j为整形变量,下列赋值语句不正确的是()

(A)p=&j,p=p1(B)p=a(C)p=&a[j](D)10

 

第二题程序填空

【程序填空】

功能:

输出1到1000之间满足如下条件的整数,该数各数位上的数字之乘积大于该数各

数位上的数字之和。

例如:

整数126,各数位上的数字之乘积12大于各数位上的数字之和9。

-------------------------------------------------------*/

#include

voidmain()

{intn,k=1,s=0,m,temp;

for(n=1;n<=1000;n++){

k=1;

s=0;

/***********SPACE***********/

【?

】;

while(m>0){

/***********SPACE***********/

temp=【?

】;

k*=temp;

s+=temp;

/***********SPACE***********/

【?

}

if(k>s)

printf("%d",n);

}

答案m=nm%10m=m/10

第三题程序改错

功能:

输入10个数,要求输出这10个数的平均值

例如:

从键盘输入:

12345678910,输出的平均值:

5.5

 

#include

doubleaverage(doublearray[],intn)

{

inti;

doubleaver,sum=array[0];

/*************FOUND*********/

for(i=0;i>n;i++)

sum=sum+array[i];

aver=sum/10.0;

return(aver);

}

intmain()

{

/*********FOUND*******/

intscore[10],aver;

inti;

printf(“input10scores:

\n”);

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

/*********FOUND*******/

Scanf(“%f”,scores);

Printf(“\n”);

/*********FOUND*******/

aver=average(score[10]);

printf(“averagescoreis%5.2lf”,aver);

return0;

}

 

答案:

for(i=1;i<10;i++)缺答案

【程序改错】2

功能:

学习成绩>=90分的同学用A表示,70-89分之间的用B表示,60-69分之间的用C表示,60分以下的用D表示。

#include

intmain()

{

intscore;

/**********FOUND**********/

char*grade;

printf("pleaseinputascore\n");

/**********FOUND**********/

scanf("%d",score);

if(score<0&&score>100)

printf("超出范围!

");

else

{

/**********FOUND**********/

switch(score)

{

case9:

case10:

grade='A';

break;

case7:

case8:

grade='B';

break;

case6:

grade='C';

break;

/***********FOUND***********/

caseelse:

grade='D';

}

}

printf("%dbelongsto%c\n",score,grade);

return0;

}

 

答案:

chargrade;或intgrade;

scanf(“%d”,score)

switch(score/10)

default:

或case0:

case1:

case2:

case3:

case4:

case5:

:

第四题程序设计

功能:

用函数将第2个串连接到第1个串之后,不允许使用strcat函数。

#include

voidwwjt();

voidlen_cat(charc1[],charc2[])

{

/**********Program**********/

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

}

main()

{

chars1[80],s2[40];

gets(s1);gets(s2);

len_cat(s1,s2);

printf("stringis:

%s\n",s

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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