C语言试题二级C语言试题教学文稿.docx

上传人:b****9 文档编号:25297152 上传时间:2023-06-07 格式:DOCX 页数:15 大小:20.99KB
下载 相关 举报
C语言试题二级C语言试题教学文稿.docx_第1页
第1页 / 共15页
C语言试题二级C语言试题教学文稿.docx_第2页
第2页 / 共15页
C语言试题二级C语言试题教学文稿.docx_第3页
第3页 / 共15页
C语言试题二级C语言试题教学文稿.docx_第4页
第4页 / 共15页
C语言试题二级C语言试题教学文稿.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

C语言试题二级C语言试题教学文稿.docx

《C语言试题二级C语言试题教学文稿.docx》由会员分享,可在线阅读,更多相关《C语言试题二级C语言试题教学文稿.docx(15页珍藏版)》请在冰豆网上搜索。

C语言试题二级C语言试题教学文稿.docx

C语言试题二级C语言试题教学文稿

 

C语言试题,二级C语言试题

二级C语言程序设计模拟试题

(一)

一、单项选择题。

(每小题1分,共20分)

1、一个C语言程序是由(B)组成。

A)一个函数B)一个或若干个函数

C)一个过程D)一个过程或若干个过程

知识点:

C语言程序的结构

2、C语言用(D)表示逻辑真值。

A)trueB)TC)整型值0D)非0整型值

知识点:

数据类型

3、如果程序中有#include"文件名"则意味着(A)。

A)将"文件名"所指的那个文件的全部内容,在此命令行出现的这一点上,插入源程序

B)指定标准输入输出

C)宏定义一个函数

D)条件编译说明

知识点:

编译预处理

4、为一个结构体变量分配存储空间时,其所占容量为(B)。

A)结构体中第一个成员所占容量B)结构体中所有成员所占容量

C)结构体中所有成员中所占容量最大者D)结构体中最后一个成员所占容量

知识点:

结构体

5、如果int*px,*py;则可用{temp=*px;*px=*py;*py=temp}实现*px和*py的交换。

其中temp应该说明为(A)。

A)inttempB)int&tempC)int**tempD)int*temp

知识点:

指针

6、于合法的c语言长整型常量是(A)。

A)12LB)6887273C)5E12D)(long)6887273

知识点:

数据类型

7、下列程序输出正确的是(A)。

main()

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

c=(a++<=0)&&!

((b--<=0));

printf(“%d,%d,%d”,a,b,c);

}

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

知识点:

逻辑运算符

8、已知E的ASCII码是69,则执行printf(“%c”,’D’-‘8’+’5’);的结果是(B)。

A)66B)AC)BD)E

知识点:

数据类型与自动转换

9、段名访问的方式是(A)

A)结构名.位段名B)位段名C)结构名D)*&位段名

知识点:

位段

10、有字符数组a,则正确的输入语句是(C)。

A)gets('a');B)scanf("%c",a);C)scanf("%s",a);D)gets("a");

知识点:

字符数组

11、如果程序中有staticcharc;则编译时会对其自动设置初始值为(C)

A)'\n'B)"\n"C)0D)'\0'

知识点:

存储类型与静态变量

12、如果程序中有语句FILEfp;fp=fopen("abc.txt","w");则程序准备做(C)。

A)对文件读写操作B)对文件读操作C)对文件写操作D)对文件不操作

13、如果有#definef(x,y)x+y及inta=2,b=3;则执行printf("%d",f(a,b)*f(a,b))后的值为(C)。

A)36B)25C)11D)13

14、在下面的说明中,(D)是指向函数的指针。

A)int*p[];B)int(*p)[];C)*p();D)(*p)();

15、如果在C程序中有main(intargc,char*argv[]),那么(D)是指命令行中的参数个数。

A)argvB)argv[]C)argc,argv[]D)argc

16、下列程序运行的结果是(B)。

#include

main()

{unsigneda,b,x;

a=0x255;

b=a<<4

x=(~b)&0xff

}

A)0x55B)0xafC)0x50D)0xda

17、下面程序中选择正确答案(C)

main()

{intk=0;

while(printf(“*”))

{k++;

if(k<3)

break;

}

}

A)其中循环控制表达式与’0’等价B)其中循环控制表达式与0等价

C)其中循环控制表达式与1等价D)其中循环控制表达式不合法

18、用文件包含形式的预处理时,当#include后面的文件名用尖括号括起,寻找被包含文件的方式为(B)

A)先在源程序所在目录搜索,再按系统设定的标准方式搜索

B)直接按系统设定的标准方式搜索

C)仅仅搜索当前目录

D)仅仅搜索源程序所在目录

19、设有如下函数定义

intf(char*s)

{char*p=s;

while(*p)p++;

return(p-s);

}

如果用printf(“%d”,f(“abcdef”));调用该函数,则输出结果为(B)。

A)0B)6C)7D)奇怪字符

20、程序段(C)

intx=-1;

do

{x=x*x;

}(!

x);

A)是死循环B)循环执行2次C)循环执行1次D)不合法

二、不定项选择题。

(每小题1分,共10分,错选、漏选均不得分)

1、存储类型为static的静态变量的正确描述有(ABE)。

A)静态变量有外部静态变量和内部静态变量之分。

B)静态变量的数据类型如果是整型,则其缺省初值由编译系统赋为0。

C)内部静态变量不能赋初值。

D)所谓全局变量就是指静态变量。

E)外部静态变量只在本文件中可见。

2、下列哪些运算符的优先级相同且运算次序从左到右(AC)。

A)()[]->B)++--C)<>=D)&&||E)&|

3、在C语言中,下面哪些描述是正确的(BDE)。

A)在switch(c)语句中,c可以是任意表达式。

B)elseif语句可以转化为switch语句。

C)大小写没有区别。

D)goto语句必须与“转向标号”配合使用。

E)C语言提供函数的递归调用机制。

4、如有说明struct{intday;intmonth;intyear;}d,*pd;则下列哪些引用是正确的(ABC)。

A)pd->yearB)(*pd).yearC)d.yearD)*pd.yearE)*(pd->year)

5、在C语言中,系统指定的标准设备文件有(BCD)。

A)fopenB)stdinC)stdoutD)stderrE)fclose

6、C语言中要求所用到的变量作强制性定义,其目的是(ACE)

A)变量被指定类型后便于分配内存单元B)确定变量的数量

C)保证程序中正确地使用变量D)保证变量不同名

E)根据变量的类型便于确定运算的合法性

7、结构化程序是由(ADE)组成的。

A)顺序结构B)模块结构C)树型结构

D)选择结构E)循环结构

8、下列程序中,若输入的命令行为:

file1chinacomputer,则输出的结果为(B)。

#include

main(intargc,char*argv)

{while(--argc>0)

printf(“%s”,*++argv);

}

A)file1B)chinaC)chinacomputerD)language

9、下面(ACDE)是位段特性的正确描述。

A)位段空间的分配,不受机器的限制一律从左到右

B)可以定义位段数组C)位段的长度不能大于存储单元的长度

D)位段可以用整数格式输出E)位段的长度可以为0

10、函数返回值的正确描述是(ACE)。

A)函数的返回值是通过函数中的return语句获得

B)有多少个return语句就有多少个返回值

C)在定义函数时,对函数值的说明类型与return语句表达式的类型应一致

D)如果函数值的类型与return中表达式的类型不一致时,以表达式(应该以函数类型为准)为准

E)当函数中没有return语句时,返回的是一个不确定的值

三、判断分析题(如正确选√;如错误选Х。

每小题1分,共10分)

1、使用typedef可以自定义一种新的数据类型。

(X)

2、结构(struct)和联合(uion)类型实质上是相同的。

(X)

3、可以用顺序、分支、循环三种结构构造任何算法。

(√)

4、如有inta=2,b=4,c=8;则表达式((a>b)&&c>a)||(c>b)的值为真。

(√)

5、求n!

既可以用递归的方式,也可以用递推的方式。

(√)

6、在C语言中,程序main(){intptr;*ptr=100;printf("%d",*ptr);}是正确的。

(X)

7、C语言的编译系统对宏命令的处理是在源程序编译阶段进行的。

(X)

8、C语言中的输入输出操作是通过专门的输入输出语句实现的。

(X)

9、C语言可以处理的文件类型是文本文件和二进制文件。

(√)

10、若定义int**p;则程序中调用*p时,它代表p的地址。

(X)

四、填空题。

(每空2分,共20分)

1、构成递归的两个组成部分是递归方式和①递归结束条件。

2、ANSIC提供了一个测试文件是否在结尾的状态函数feof(pf),当文件结束时feof函数的值为②非零整数。

3、下面是输出链表head的函数print。

#include

structstud

{longnum;

floatscore;

structstud*next;

};

voidprint(structstud*head)

{structstud*p;

p=head;

if(head!

=NULL)

do

{printf("%ld%5.1f\n",p->num,p->score);

___________③p=p->next________;

}while(p!

=NULL);

}

4、下面函数能找出字串s所包含的子串sub第1次出现的位置,请完善此程序填空。

search(s,sub)

_④char*s,*sub;_____

{inti,j,k;

for(i=0;s[i]!

=’\0’;i++)

{for(j=i,k=0;_⑤s[j]!

='\0'&&sub[k]!

='\0'_&&s[j]==sub[k];j++,k++);

if(sub[k]==’\0’)

return(i);

}

return(-1);

}

5、算满足不等式1+1/2+1/3+1/4+…..+1/n>limit所需调和级数的项数.其中limit是提出的要满足的要求,而所求的是项数n,请完善此程序填空。

#include

main()

{inttermcount=0;

floatsum,limit;

sum=0.0;

printf(“limit=?

”);

scanf(“%f”,&limit);

do

{termcount+=1;

sum+=1.0/termcount;

}while(_⑥_sum

printf(“n=%d\tsum=%f\n”,termcount,sum);

}

6、有已排好序(升序)的字符串a,下面的程序是将字符串s中的每个字符按升序的规律插入到a中。

请完善程序。

#include

#include

voidmain()

{chara[20]="abcdefwxy";

chars[]="english";

inti,j,k;

for(k=0;s[k]!

='\0';k++)

{j=0;

while(s[k]>=a[j]&&a[j]!

='\0')

j++;

for(i=strlen(a);i>=j;i--)

_⑦_a[i]=a[i-1]________;

a[j]=s[k];

}

puts(a);

}

7、函数fac的作用是用来求整数n1和整数n2的最大公约数,并返回该值,请完善程序。

intfac(intn1,intn2)

{intt,x,y;

if(n1>n2)

{t=n1;n1=n2;n2=t;}

x=n1;y=n2;

while(_⑧_y____)

{t=x%y;x=y;y=t;}

return(x);

}

8、以下函数的功能是删除字符串s中的所有数字字符。

请填空。

vioddele(char*s)

{intn=0,i;

for(i=0;s[i];i++)

if(⑨s[i]>=’0’&&s[i]>=’9’)

s[n++]=s[i];

s[n]=⑩‘\0’;

}

五、阅读程序,写出运行结果。

(每小题4分,共20分)

1、下列程序执行后其输出结果是:

#include

fun3(intx)

{staticinta=3;

a+=x;

return(a);

}

voidmain()

{intk=2,n;

n=fun3(k);

n+=fun3(k);

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

}

程序的运行结果为:

(5+7)=12

2、下列程序执行后其输出结果是:

#include

unionee

{inta;

intb;

}*p,s[4];

voidmain()

{intn=1,i;

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

{s[i].a=n;

s[i].b=s[i].a+1;

n+=2;

}

p=&s[0];

printf("%d,",p->a);printf("%d",++p->a);

}

程序的运行结果为:

(共用体)2,3

3、下列程序执行后其输出结果是:

#include

voidfun(intn,int*s)

{intf1,f2=1;

if(n==1)

*s=1;

else

{fun(n-1,&f1);

*s=f1+f2;

}

}

voidmain()

{intx;

fun(6,&x);

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

}

程序的运行结果为:

(递归调用)6

4、写出下面程序执行的结果:

int*fun(int*p)

{staticinta=0;

returnp+a++;

}

main()

{int*fun(int*p);

inta[10]={0,1,2,3,4,5,6,7,8},*p;

p=fun(a+1);

p=fun(p+2);

printf(“%d”,*p);

}

程序的运行结果为:

4

5、写出下面程序执行的结果:

#include

main()

{charc;inti,k;

k=0;

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

{while

(1)

{c=getchar();

if(c>’0’&&c<=’9’)

break;

}

k=k*10+c-‘0’;

}

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

}

程序的意思是:

从用户的输入字符串中提出前四个数字组成一个新串并输出。

输入:

1a2s3d4f

输出:

1234

六、编程序。

(每小题10分,共20分)

1、编程将一个数组中的值,按逆序重新存放,例如原来是8,6,5,4,1,要求改为1,4,5,6,8。

答:

main()

{

inta[]={8,6,5,4,1},i,j,t;

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

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

if(a[i]>a[j]){t=a[i];a[i]=a[j];a[j]=t;}

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

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

}

2、编写函数insert(f,str1,str2)其功能是按f指定的位置,在字符串str1中插入str2。

答:

#include"string.h"

voidinsert(intf,char*str1,char*str2)

{

charstr[50];

strcpy(str,str1+f);

strcpy(str1+f,str2);

strcat(str1,str);

}

voidmain()

{

charstr1[50]="abcdef";

charstr2[50]="xyz";

insert(2,str1,str2);

puts(str1);

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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