c语言.docx

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

c语言.docx

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

c语言.docx

c语言

1.根据C语言的特点以下选项中不正确的选项是______

(A)习惯用小写字母,大小写字母有区别。

(B)C语言主要由语句构成,语句是C程序的基本单位。

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

(D)用C语言写的程序可移植性好。

2.C语言中运算对象必须是整型数据的运算符是______

(A)%(B)/(C)!

(D)&&

3.若变量已正确定义并赋值,符合C语言语法的表达式正确的是______

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

4.下列可以正确表示字符型常量的是______

(A)"a"(B)'\t'(C)'\028'(D)'xy'

5.已知intx=1,y=2,z;执行语句z=x>y?

++x:

++y;后,z的值是______

(A)1(B)2(C)3(D)4

6.若变量已正确定义,要将a和b中的数据进行交换,下面选项中不正确的是______

(A)a=a+b,b=a-b,a=a-b;(B)t=a,a=b,b=t;

(C)a=t;t=b;b=a;(D)t=b;b=a;a=t;

7.已知intx=6;则执行x+=x-=x*x;语句后,x的值为______

(A)36(B)-60(C)60(D)-24

8.以下程序的输出结果是______

(A)0(B)1(C)2(D)3

main()

{inta=2,b=-1,c=2;

if(a

if(b<0)c=0;

elsec+=1;

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

}

9.已知a,b,c的值均为1,且均为int类型变量,则执行++a||++b&&++c;语句后,a,b,c的值分别为______

(A)2,2,1(B)2,1,1(C)2,2,2(D)2,1,2

10.若变量已正确定义,以下语句的输出结果是______

(A)%#(B)*%$(C)%(D)%$*

x=0;y=2;z=3;

switch(x)

{case0:

switch(y)

{case1:

printf("*");break;

case2:

printf("%");break;

}

case1:

switch(z)

{case1:

printf("$");

case2:

printf("*");break;

default:

printf("#");

}

}

11.若有以下宏定义

#defineN2

#defineY(n)((N+1)*n)

则执行语句z=2*(N+Y(5));后的结果为______

(A)语句有错误(B)z=34(C)z=70(D)z值不确定

12.以下不是死循环的语句为______

(A)for(;;x+=i);

(B)while

(1){x++;}

(C)for(i=10;;i--)sum+=i

(D)for(;(c=getchar())!

='\n';)printf("%c",c);

13.以下程序段的输出结果是______

(A)9(B)1(C)11(D)10

intk,j,s;

for(k=2;k<6;k++,k++

{

s=1;

for(j=k;j<6;j++

s+=j;

}

printf("%d\n",s;

14.已知:

inta[3][4];则对数组元素引用正确的是______

(A)a[2][4](B)a[1,3](C)a[1+1][0](D)a

(2)

(1)

15.已知:

charstr[]="ab\n\018\\\"";则执行语句:

printf("%d\n",strlen(str));的结果是

(A)3(B)7(C)6(D)12

16.以下不能对二维数组a进行正确初始化的语句是______

(A)inta[2][3]={0};(B)inta[][3]={{1,2}{0}};

(C)inta[2][3]={{1,2},{3,4},{5,6}};(D)inta[][3]={1,2,3,4,5,6};

17.下面对C语言的描述中,正确的是_______

(A)在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参。

(B)C语言函数既可以嵌套定义又可以递归调用。

(C)函数必须有返回值,否则不能使用函数。

(D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中。

18.已知int*p();这里的p是______

(A)指向int类型的指针变量。

(B)int类型的指针数组。

(C)一个函数,该函数的返回值是指向int类型的指针变量。

(D)一个指向函数的指针变量,该函数的返回值是int类型。

19.已知inta[3][4],*p=a;p+=6;那么*p和_______的值相同。

(A)*(a+6)(B)*(&a[0]+6)

(C)*(a[1]+3)(D)*(&a[0][0]+6)

20.已知函数定义如下:

abcd(char*s1,char*s2)

{

while(*s2++=*s1++);

}

函数abcd的功能是______

(A)串复制(B)求串长(C)串比较(D)串反向

21.标准库函数fgets(s,n,f)的功能是______

(A)从文件f中读取长度为n的字符串存入指针s所指的内存

(B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

(C)从文件f中读取n个字符串存入指针s所指的内存

(D)从文件f中读取长度为n-1的字符串存入指针s所指的内存

22.以下程序的输出结果是______

(A)100(B)160(C)120(D)64

main()

{

charx=040;

printf("%d\n",x=x<<1);

}

23.已知:

union

{inti;

charc;

floata;

}test;

则sizeof(test)的值是______

(A)1(B)2(C)4(D)7

24.下列程序的输出结果是______

(A)c(B)d(C)e(D)f

#include

char*p="abcdefghijklmnopq";

main()

{

while(*p++!

='e');

printf("%c\n",*p);

}

25.以下程序的输出结果是______

(A)GFEDCBA(B)AGADAGA

(C)AGAAGAG(D)GAGGAGA

#include

#include

voidfun(char*w,intm)

{

chars,*p1,*p2;

p1=w;p2=w+m-1;

while(p1

{s=*p1++;*p1=*p2--;*p2=s;

}

}

main()

{

chara[]="ABCDEFG";

fun(a,strlen(a));

puts(a);

}

26.程序读入20个整数,统计非负数个数,并计算非负数之和。

请填空完成。

#include

voidmain()

{

inti,a[20],s,count;

s=count=0;

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

scanf("%d",____________);

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

{if(a[i]<0)

_____________;

s+=a[i];

count++;

}

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

}

27.下面程序的功能是:

从键盘上输入一行字符,存入一个字符数组中,然后输出该字符串。

请填空完成。

#include

main()

{

charstr[81],*sptr;

inti;

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

{str[i]=getchar();

if(str[i]=='\n')break;

}

str[i]=_____________;

sptr=str;

while(*sptr)

putchar(*sptr______________);

}

28.下面给定的程序的功能是:

读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行,(这里的“单词”是指由空格隔开的字符串)。

例如,若输入Iamastudenttotaketheexamination,则应输出IAmAStudentToTakeTheExamination。

请填空完成。

#include

#include

#include

upfst(char*p)

{

intk=0;

for(;*p;____________)

if(k)

{

if(*p==____________)k=0;}

elseif(*p!

='')

{k=1;*p=toupper(*p);}

}

main()

{

charchrstr[81];

printf("\nPleaseenteranEnglishtextline:

");

gets(chrstr);

printf("\n\nBeforechanging:

\n%s",chrstr);

upfst(chrstr);

printf("\nAterchanging:

\n%s\n",chrstr);

}

29.以下fun函数的功能是:

用选择法对数组中的n个元素按从小到大的顺序进行排序。

请填空完成。

#include

#defineN20

voidfun(inta[],intn)

{

inti,j,k,t;

for(i=0;i

{

____________;

for(j=i+1;j

if(____________)

k=j;

t=a[k];a[k]=a[i];a[i]=t;

}

}

main()

{

inta[N]={9,6,8,3,-1},i,m=5;

for(i=0;i

fun(a,m);

for(i=0;i

}

30.以下是将两个字符串连接起来的程序,请填空完成。

main()

{chars1[80],s2[40];

inti=0,j=0;

printf("\nInputstring1:

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

printf("\nInputstring2:

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

while(s1[i]!

='\0')

___________;

while(s2[j]!

='\0')

____________;

s1[i]='\0';

printf("Thenewstringis%s\n",s1);

}

三、请改正下列程序中的错误,使之能得出正确的结果。

注意:

不要改动main函数,不得增行或减行,也不得更改程序的结构!

31.给定程序中函数fun的功能是:

判断字符ch是否与str所指串中的某个字符相同;若相同,什么也不做,若不同,则将其插在串的最后。

请改正程序中的错误,使它能得出正确的结果。

#include

#include

/*********found*********/

voidfun(charstr,charch)

{while(*str&&*str!

=ch)

str++;

/**********found**********/

if(*str==ch)

{str[0]=ch;

/**********found**********/

str[1]='0';

}

}

main()

{chars[81],c;

printf("\nPleaseenterastring:

\n");

gets(s);

printf("\nPleaseenterthecharactertosearch:

");

c=getchar();

fun(s,c);

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

}

32.给定程序中函数fun的功能是:

求广义菲玻那契级数的第n项。

广义菲玻那契级数的前n项为:

1,1,1,3,5,9,17,31,……项值通过函数返回main()函数。

例如,若n=15,则应输出:

2209。

#include

longfun(intn)

{longa=1,b=1,c=1,d=1,k;

/**********found*********/

for(k=4;k<=n;k++)

{d=a+b+c;

/**********found*********/

a=b;b=c;c=d

}

returnd;

}

main()

{intn=15;

printf("thevalueis:

%d\n",fun(n));

}

四、程序设计(共2题,第一题5分,第二题10分,共15分)

33.求1-3+5-7+……-99+101的值。

(5分)

34.请编写一个函数fun,它的功能是:

求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

(10分)。

#defineM4

#include

fun(inta[][M])

{

}

main()

{intarr[2][M]={5,8,3,45,76,-4,12,82};

printf("max=%d\n",fun(arr));

}

C语言程序设计试卷(A卷)标准答案及评分标准

一、单项选择题(每题2分,共50分)

1.B2.A3.B4.B5.C

6.C7.B8.C9.B10.A

11.B12.D13.D14.C15.B

16.C17.A18.C19.D20.A

21.B22.D23.C24.D25.C

二、程序填空题(每空2分,共20分)

26.&a[i]continue

27.'\0'++

28.p++''

29.k=ia[j]

30.i++s1[i++]=s2[j++]

三、修改程序题(共有5处错误,每处3分,共15分)

31.将fun函数中的参数charstr改为char*str

将if语句中的*str==ch改为*str!

=ch

str[1]='0'改为str[1]='\0'

32.将For改为for

在c=d后面加;

四、程序设计题(共2题,第一题5分,第二题10分,共15分)

注意:

编程方法不唯一,以下为参考答案。

另外,主要测试编程方法,语法错误在不影响阅读情况下可不扣分,如少写分号等。

33.

方法一:

main()

{inti,j=1,sum=0;

for(i=1;i<=101;i+=2)

{

sum+=i*j;

j*=(-1);

}

printf("sum=%d",sum);

}

方法二:

main()

{

inti,s1=0,s2=0;

for(i=1;i<=101;i+=4)

s1+=i;

for(i=-3;i>=-99;i-=4)或for(i=-99;i<=-3;i+=4)

s2+=i;

printf("sum=%d",s1+s2);

}

34.

方法一:

fun(inta[][M])

{

inti,j,max;

max=a[0][0];

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

for(j=0;j<>

if(a[i][j]>max)

max=a[i][j];

returnmax;

}

一、单项选择题。

1.以下合法的用户标识符是______

(A)456p(B)w.ww(C)p101p(D)stu-num

2.以下定义语句中正确的是______

(A)chara='A'b='B';(B)inta=b=10;

(C)inta=10,*b=&a;(D)int*a,b=&a;

3.在C语言中,字符型(char)数据在内存中存放的形式为______

(A)BCD码(B)原码(C)补码(D)ASCII码

4.C语言中,下列合法的长整型常量是______

(A)'a'(B)0.012345(C)2.134e12(D)0L

5.已知inti=0;执行语句k=(i++)+(++i);后,k的值是______

(A)2(B)0(C)3(D)5

6.设m,n,a,b,c,d的值均为0,执行(m=a==b)||(n=c==d)后,m,n的值是______

(A)0,0(B)0,1(C)1,0(D)1,1

7.设有定义:

inta=5,b;则执行下列语句后,b的值不为2的是______

(A)b=a/2;)(B)b=6-(--a;)(C)b=(a>3?

2:

4);(D)b=a%2;

8.若有定义:

inta=3,b=4,*c=&a;则执行语句*c=a+b;后,a的值为______

(A)3(B)4(C)7(D)3.0

9.用语句scanf("x=%d,y=%d",&x,&y);使x的值为5,y的值为8,则正确的输入是______

(A)5,8(B)58(C)x=5x=8(D)x=5,y=8

10.下面程序段的输出结果是______

(A)7(B)60(C)6(D)1

#defineMAX(x,y)(x)>(y)?

(x):

(y)

main()

{

inta=5,b=2,c=3,d=3,t;

t=MAX(a+b,c+d)*10;

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

}

11.下面程序的输出结果是______

main()

{

intx=1,a=0,b=0;

switch(x)

{

case0:

b++;

case1:

a++;

case2:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

(A)a=1,b=0(B)a=2,b=1(C)a=2,b=2(D)a=0,b=1

12.表达式(int)3.6*3的值______

(A)9(B)10(C)10.8(D)18

13.以下程序的输出结果是______

main()

{

inta=1,b;

for(b=1;b<=10;b++)

{

if(a>=8)break;

if(a%2==1){a+=5;continue;}

a-=3;

}

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

}

(A)3(B)4(C)5(D)6

14.若有定义:

intx,y;则循环语句for(x=0,y=0;(y!

=123)||(x<4);x++);的循环次数是______

(A)无限次(B)4次(C)0次(D)3次

15.已知:

charstr[]="ab\n\t\\\"";则函数printf("%d\n",strlen(str))的输出结果是______

(A)3(B)7(C)6(D)12

16.已知:

inta[10];则对a数组元素的正确引用是______

(A)a[10](B)a[2.5](C)a(4)(D)a[10-2]

17.在C语言中,如果对函数类型未加说明,则函数的隐含类型为______

(A)double(B)void(C)int(D)char

18.函数调用语句f((s1,s2,s3),(s4,s5,s6,s7));中参数的个数是______

(A)2(B)3(C)6(D)7

19.设inta=12;则执行语句a+=a-=a*=a;后,a的值为______

(A)144(B)0(C)12(D)24

20.下面关于字符串的说明中,错误的是______

(A)charstr[7]="FORTRAN";

(B)charstr[]="FORTRAN";

(C)char*str="FORTRAN";

(D)charstr[]={'F','O','R','T','R','A','N'}

21.设有定义:

chara[10]="ABCD",*p=a;,则*(p+4)的值是______

(A)"ABCD"(B)'D'(C)'\0'(D)不确定

22.以下程序的输出结果是______

(A)3(B)2(C)1(D)0

main()

{

inti,j,k,n[3];

for(i=0;i<3;i++)n[i]=0;

k=2;

for(i=0;i

for(j=0;j

n[j]=n[i]+1;

printf("%d\n",n[1]);

}

23.语句strcat(srcpy(str1,str2),str3);的功能是______

(A)将字符串str1复制到字符串str2中后再连接到字符串str3之后。

(B)将字符串str1连接到字符串str2中后再复制到字符串str3之后。

(C)将字符串str2复制到字符串str1中后再将字符串str3连接到字符串str1之后。

(D)将字符串str2连接到字符串str1中后再将字符串str3复制到字符串str1中。

24.C语言可以处理的文件类型是______

(A)文本文件和数据文件(B)文本文件和二进制文件

(C)数据文件和二进制文件(D)数据代码文件

25.若fp是指向某文件的指针,且已读到文件的末尾,则表达式feof(fp)的值为______

(A)EOF(B)0(C)非零值(D)NULL

二、程序填空题

26.下列程序的功能是把从键盘上输入的整数取绝对值后输出。

请填空完成。

#include

voidmain()

{

intx;

scanf("%d",&x);

if(x<0)

____________;

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

}

27.下面程序的功能是:

把从键盘输入的10个整型数按相反的顺序输出。

main()

{

inti,a[10],*p=&a[9];

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

scanf("%d",___________);

for(;p>=a;p--)

printf("%3d",____________);

}

28.下面fun函数的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依次类推。

请填空完成。

fun(intx,intb[])

{

intk=0,r

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

当前位置:首页 > PPT模板 > 图表模板

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

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