C语言知识学习期末试题A.docx

上传人:b****7 文档编号:25524094 上传时间:2023-06-09 格式:DOCX 页数:13 大小:19.64KB
下载 相关 举报
C语言知识学习期末试题A.docx_第1页
第1页 / 共13页
C语言知识学习期末试题A.docx_第2页
第2页 / 共13页
C语言知识学习期末试题A.docx_第3页
第3页 / 共13页
C语言知识学习期末试题A.docx_第4页
第4页 / 共13页
C语言知识学习期末试题A.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言知识学习期末试题A.docx

《C语言知识学习期末试题A.docx》由会员分享,可在线阅读,更多相关《C语言知识学习期末试题A.docx(13页珍藏版)》请在冰豆网上搜索。

C语言知识学习期末试题A.docx

C语言知识学习期末试题A

四川大学期末考试试题(A卷)

(2013——2014学年第一学期)

课程号:

303066030课序号:

课程名称:

计算机基础及C程序设计语言

任课教师:

刘亚梅刘洋任瑞玲曾晓东余勤罗伟王茂宁王忠邓丽华成绩:

适用专业年级:

2012级学生人数:

印题份数:

学号:

姓名:

考试须知

四川大学学生参加由学校组织或由学校承办的各级各类考试,必须严格执行《四川大学考试工作管理办法》和《四川大学考场规则》。

有考试违纪作弊行为的,一律按照《四川大学学生考试违纪作弊处罚条例》进行处理。

四川大学各级各类考试的监考人员,必须严格执行《四川大学考试工作管理办法》、《四川大学考场规则》和《四川大学监考人员职责》。

有违反学校有关规定的,严格按照《四川大学教学事故认定及处理办法》进行处理。

一、单项选择题(每题1.5分,共45分)(注:

本题及以下各题均以VC++6.0为软件编程平台)

1.一个C程序总是从_______开始执行的。

A)main函数B)程序的第一行

C)程序的第一个函数D)不固定位置

2.以下对C语言的描述正确的是。

A)函数允许嵌套定义B)编译时不检查语法

C)用户所定义的标识符必须以字母开头D)转义字符以“\”开头

3.下列C语言中运算对象必须是整型的运算符是。

A)%=B)&&C)=D)*=

4.若有以下程序段:

intc1,c2=3,c3=2;c1=(float)c2/c3;则执行后,c1、c2的值分别是。

A)0,3.0B)1,3.0C)0,3D)1,3

5.下列变量定义中合法的是。

A)short_a=0xda;B)doubleb=1+5e2.5;

C)inta=‘A’;D)float2_and=1-e-3;

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

A)++(a+1)B)a=7+b/c=a++

C)a=a+7=c+bD)a=’\0’

7.设inta=1,b=2,c=3,m=4,n=5,p=3;,则执行表达式(a=m

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

8.下列合法的常量是:

A)’abc’B)’\0x3a’C)“四川大学”D)’\xaif’

9.有整型变量x,单精度变量y=2.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为。

A)9.0B)9C)7D)9.5

10.有变量说明和语句inta=10,b=1;b=(a==10&&++a>10);,则a和b的值分别是。

A)10和1B)10和0C)11和0D)11和1

11.以下4个选项中,不能看作一条语句的是。

A)if(b==0)m=1;n=2;B)a=0,b=0,c=0;

C)if(b==0){m=1;n=2;}D)if(a>0);

注:

1试题字迹务必清晰,书写工整。

本题8页,本页为第1页

2题间不留空,一般应题卷分开教务处试题编号:

学号:

姓名

12.若有语句scanf(“%d%c%f”,&a,&b,&c),假设输入序列为12.3A47,则a、b、c的值为。

A)无值B)12.3,A,47

C)12,.,无D)12,.,3.0

13.语句“printf("%d",(a=2)&&(b=-2));”的输出结果是。

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

14.以下语句中无限循环语句是。

A)for(;2&&5;);B)while(1,2,0);

C)while(‘\0’);D)for(;’\0’;);

15.下列if语句中,不正确的是。

A)if(x

B)if(x

C)if(x==y)x+=y;

D)if(x

16.以下循环体的执行次数是。

#include

voidmain()

{

inti,j;

for(i=0,j=2;i<=j+1;i+=2,j--)

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

}

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

17.下面程序的输出结果是()。

#include

voidmain()

{

intx=5,a=0,b=0;

if(x!

=(a+b))printf("x=5\n");

elseprintf("a=b=0\n");

}

A)有语法错,不能通过编译B)通过编译,但不能连接

C)x=5D)a=b=0

18.定义:

inta=10,b=11,c=12;后,则下面表达式为0的是。

A)'a'&&'b'B)a<=b

C)a||b+c&&a-bD)!

((a

a||1)

19.运行以下程序后,如果从键盘上输入Monkey&<回车>,则输出结果为。

#include

voidmain()

{

intv1=0,v2=0;

charch;

本题8页,本页为第2页

教务处试题编号:

学号:

姓名

while((ch=getchar())!

='&')switch(ch)

{

case'o':

case'n':

default:

v1++;

case'&':

v2++;

}

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

}

A)2,1B)6,0C)6,6D)2,7

20.若有定义:

chara[10],*p=a;则不能给数组a输入字符串的语句是。

A)gets(a)B)gets(a[0])C)gets(&a[0]);D)gets(p);

21.有两个字符数组str1、str2,则下面能正确对str1、str2进行输入的语句是。

A)gets(str1,str2);B)scanf(“%s%s”,str1,str2);

C)scanf(“%s%s”,&str1,&str2);D)gets(“str1”);gets(“str2”);

22.下面能正确进行字符串赋值操作的是。

A)chars[5]={"abcde"}B)chars[5]={'a','b','c','d','e'}

C)char*s;s="abcde"D)char*s;scanf("%s",s);

23.设有数组定义:

chara[]="ABCDE\0123";则数组a所占的空间为个字节。

A)9B)10C)5D)8

24.有以下程序

#include

#include

voidmain()

{

chars1[]={'a','b','c'},s2[10]={'a','b','c'};

printf("%d%d\n",strlen(p),strlen(q));

}

以下叙述中正确的是______。

A)在给s1和s2数组置初值时,系统会自动添加字符串结束符,故长度都为3

B)由于s1数组中没有字符串结束符,长度不能确定;但s2数组中字符串长度为3

C)由于s1和s2数组中都没有字符串结束符,故长度都不能确定

D)以上说法都不对

25.若有定义:

inta=0,*p=&a;,则语句printf("%d\n",*p);的输出结果是______。

A)随机值B)0C)a的地址D)p的地址

26.下面程序段,输出*的个数是

char*s="\tx++\016yz";

for(;*s!

='\0';s++)printf("*");

A)4B)9C)7D)11

27.若有以下说明,且0≤i≤10,则对数组元素的错误引用是_______。

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

A)p[i]B)a[p-a+i]C)p+iD)*(&a[i])

本题8页,本页为第3页

教务处试题编号:

学号:

姓名

28.若有以下说明,且0≤i<10,以下表达式中错误的是_______。

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

A)p[i++]B)*(a+i)C)*(i+a)D)*((a++)+i)

29.以下程序程序运行后的输出结果是______。

#include

voidmain()

{

inta[]={2,4,6,8,10},y=0,x,*p;

p=&a[1];

for(x=1;x<3;x++)

y+=p[x];

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

}

A)10B)11C)14D)15

30.以下程序运行后的输出结果是______。

#include

voidmain()

{

chars[]="158",*p;

p=s;

printf("%c",*p++);

printf("%s",p);

}

A)158B)1258C)58D)269

 

二、判断对错,对的划“√”,错的划“×”(每小题1分,共10分,)

1.C语言中,每个函数都可以单独编译、单独执行。

()

2.可以对字符型数组进行整体输入、输出。

()

3.以下两种初始化是等价的。

()

charx[]="abcdefg";

charx[]={'a','b','c','d','e','f','g'};

4.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息。

()

5.数组的元素实质上就是一个变量,代表内存中的一个存储单元。

()

6.设有以下程序段:

charr=’A’,*p=&r;

*p=r;

则“charr=’A’,*p=&r;”是把r的地址赋值给了p所指的存储单元.()

7.设有程序段,则s数组长度和p所指向的字符串长度相等。

()

chars[]=“china”;char*p;p=s;

本题8页,本页为第4页

教务处试题编号:

学号:

姓名

8.若有函数定义voidfunc(inta,intb){…},则对函数的引用fuc((rec1,rec2+rec3),(rec4,rec5));是错误的,因为实参与形参数量不匹配。

()

9.switch语句中,case后面只能是整型或字符型常量表达式。

()

10.在C中,凡用while循环能完成的,都能用for或do…while循环实现。

()

 

三、写出下列程序的运行结果(5小题,每题5分,共25分)

1、#include

voidmain()

{

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

switch(x)

{

case1:

switch(y)

{

case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

}

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

}

 

2、#include

voidfunc(intx,int*y)

{

x+=*y;

*y+=x;

}

voidmain()

{

intx=2,y=4;

func(x,&y);

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

}

3、#include

voidmain()

{

charc;

c=getchar();

while((c=getchar())!

='?

')

putchar(++c);

}

输入:

Today?

 

4、#include

#include

voidmain()

{

charb[30];

strcpy(&b[0],"ABC");

strcpy(&b[1],"DEF");

strcpy(&b[2],"KFC");

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

}

本题8页,本页为第5页

教务处试题编号:

学号:

姓名

5、#include

#include

voidfun(char*w,intm)

{

chars,*p1,*p2;

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

while(p1

{

s=*p1++;

*p1=*p2--;

*p2=s;

}

}

voidmain()

{

chara[]="Good";

fun(a,strlen(a));

puts(a);

}

 

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

1、下面程序的功能是计算1+1/3+1/5+…+1/99并显示结果,请填空使程序完整。

#include

voidmain()

{

inti;

floatsum;

【1】;

i=1;

while(i<100)

{

sum+=【2】;

i+=2;

}

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

}

本题8页,本页为第6页

教务处试题编号:

学号:

姓名

2、以下程序用“选择排序法”对一维数组a中的整数进行排序,使其元素的值是按从小到大的顺序排列。

请填空使程序完整。

for(i=0;i<【3】;i++)scanf("%d",&a[i]);

for(k=0;k

{【4】;

for(i=k+1;i

if(a[i]

if(min_k!

=k)

{temp=a[min_k],a[min_k]=a[k],a[k]=temp;}

}

for(i=0;i

printf("\n");

}

 

3、以下程序通过函数SunFun求。

其中,由F函数实现。

请填空使程序完整。

#include

intSunFun(intn);

intF(intx);

voidmain()

{

printf(“Thesum=%d\n”,SunFun(10));

}

intSunFun(intn)

{

intx,s=0;

for(x=0;x<=n;x++)s+=F【6】;

returns;

}

intF(intx)

{

return【7】;

}

 

本题8页,本页为第7页

教务处试题编号:

学号:

姓名

4、下列count函数用于计算子串substr在母串str中出现的次数,请填空使程序完整。

#include

intcount(char*str,char*substr)

{

intx,y,z;

intnum=0;

for(x=0;【8】;x++)

for(y=x,z=0;substr[z]==str[y];z++,y++)

if(substr[【9】]=='\0')

{

num++;

break;

}

returnnum;

}

voidmain()

{

chara[100],b[100];

gets(a);gets(b);

printf("%d\n",【10】);

}

 

本题8页,本页为第8页

教务处试题编号:

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

当前位置:首页 > 职业教育 > 职业技术培训

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

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