一、单项选择题(共10题,每题2分,共20分。在备选答案中选择一个最佳答案。多选、错选、不选不得分)
1、不是C语言基本数据类型的是( )。
A、指针类型B、整型
C、字符型D、实型
2、设有:int a=3, b= 4, c= 5,x , y表达式0 &&(x=a)&&(y=b)的值为()。
A、1 B、0C、3D、4
3、设有语句 int a=3 则执行了语句 a+=6后,变量a 的值为( )。
A、18B、-3C、9 D、12
4、执行以下程序段后,输出的y值为( )
void main()
{ int a[]={2,4,6,8,10}
int y, *p
p=&a[0]
y=*p printf(“%d”,y)
}
A、2 B、4C、6D、8
5、有定义语句:float a[4]则分配给数组a的内存空间为( )字节。
A、 20 B、 12 C、 16 C、10
6、以下描述错误的是( )。
A、break语句可用于while语句。
B、break语句和continue语句的作用是一样的。
C、在循环语句中使用break语句是为了跳出循环,提前结束循环。
D、在循环语句中使用continue语句是为了结束本次循环,而不终止整个循环。
7、C语言中规定,if语句的嵌套结构中,else总是( )。
A、与最近的if 配对 B、与第一个if 配对
C、按缩进位置相同的if配对 D、与最近的且尚未配对的if 配对
8、说明语句“int (*p)( )”的含义是( ) 。
A、p是一个指向一维数组的指针变量。
B、p是指针变量,指向一个整型数据。
C、p是一个指向函数的指针,该函数返回一个int型数据。
D、以上都不对。
9、以下对二维数组c的正确声明是 ( ) 。
A、int c[3][ ] B、int c(3,4)
C、int c(2)(2) D、int c[3][2]
10、下述程序段执行后输出结果为( )。
int x=100, y=200
printf ("% d", (x, y))
A、100 B、200 C、100,200 D、编译出错
二、填空题(共7题,共10空,每空1分,共10分。将答案填在题中横线上)
1、C语言提供的三种逻辑运算符是 && 、|| 和!
2、函数的返回值是通过函数中的 return语句获得的。
3、在"int a[ ][3]={{1},{3,2},{4,5,6},{0}}"定义后,a[2][2]的值为_6__ _;
4、对于"int *pa[5];" pa是一个具有5个元素的_数组指针_,每个元素是一个指向int型变量的__指针__;
5、单向链表的尾节点next指针应赋值__ NULL___;
6、在语句for(x=1,y=3;x>y;y++)中循环体执行的次数为0 。
7、int a[5]数组a的首地址为2000,则元素a[1]的地址为 2002 ,元素a[2]的地址为2004。
三、程序填空题(共2题,共5空,每空4分,共20分)
1、以下程序完成计算1-1/2+1/3-1/4+1/5+……前n 项和,请填空。
#include <stdio.h>
int main( )
{ int i, n, flag
float sum
scanf("%d", &n)
flag= 1
sum=0
for(i=1i<=ni++ )
{ sum+=(float)flag/i
flag=-flag
}
printf("%.3f\n", sum)
}
2、以下程序的功能是从键盘输入n个整数,统计其中正数、0、负数的个数,请填空。
#include <stdio.h>
void main( )
{int a, i, count1,count2,count3
count1=count2=count3=0
for(i=1i<=ni++)
{ scanf(“%d”, &a)
if(a>0) count1++
else if(a==0)count2++
else count3++
}
printf(“正数:&d个,零:%d个,负数:%d个\n”, count1,count2,count3 )
}
四、运行程序结果题(共4题,每题6分,共24分)
1、写出程序运行结果。
void main( )
{ int x=1,y=2,t;
int *p1,*p2
p1=&xp2=&y
t=*p1*p1=*p2*p2=t
printf("x=%d,y=%d\n",x,y)
}
运行结果为:
程序有错,不能运行!或写:
x=2,y=1
2、写出程序运行结果。
#include<stdio.h>
int max(int a,int b)
{ int c
c=a>b?a:b
return(c)
}
int min(int a,int b)
{int c
c=a<b?a:b
return(c)
}
void main()
{ int a=2,b=6
printf("max=%d\n",max(a,b))
printf(“min=%d\n”,min(a,b))
}
运行结果为:
程序有错,不能运行!或写:
max=6
min=2
3、写出程序运行结果。
#include <stdio.h>
void main()
{ int a[3][3]={1,2,3,4,5,6,7,8,9}
int i,j,sum=0
for (i=0i<3i++)
for(j=0j<3j++)
if(i==j) sum=sum+a[i][j]
printf(“sum=%d\n”,sum)
}
运行结果为:
程序有错,不能运行!或写:
sum=15
4、写出程序运行结果。
void main( )
{ int n,f
n=1
while(n<=10)
{ f=f*n
n+=2
}
printf(“f=%d\n”,&f)
}
运行结果为:
程序有错,不能运行!或写:
f=不确定
五、程序设计题(共2题,每题13分,共26分)
1、将一个数组按逆序存放,如元素1、2、3、4、5,按逆序存放后为5、4、3、2、1。
2、求出1!+2!+3!+…+8!的和并输出。
#include<stdio.h>
float fact(int n)
{ float f
if(n==1||n==0) f=1
else f=fact(n-1)*n
return(f)
}
void main( )
{float sum
int i
sum=0
for(i=1i<=8i++)
sum+=fact(i)
printf("sum=%f\n",sum)
}
不好。立即下载为了提升浏览体验,原视图版网页已升级为如下版式
武汉理工大学C语言期末试题
PLUS联合会员,享八亿文档和万本图书开通会员
武汉理工大学C语言期末试题.doc
54.5K11页 73阅读loudicrh2020-11-25
立即下载 +合伙人(招募中) 举报
武汉理工大学C语言期末试题
武汉理工大学考试试卷A、 B卷)
2010 201 1学年2学期 语言程序设计 课程 闭卷
一、单项选择题(每题2分共20分
在每小题列出的四个备选项中只有一个是符合题目要求的请将所选代码填写在下面表格中的对应位置。错选、多选或未选均无分。
1. 以下叙述不正确的是___。
A.在程序中,注释说明只能位于一条语句的后面.
B.一个源程序可由一个或多个函数组成.
C.一个源程序必须包含一个ma 函数。
D.C程序的基本组成单位是函数.
2. 以下选项中,____是合法的语言字符常量。
. ″A″ B。 ′ x43 ′ C. ′ a b ′
D。 ′ 04′
3. 以下不是合法的C语言赋值语句为___。
A++ n=(m=(p=0)) C。a=b=cD.k=
+b1
4. 设在语言中一个int型数据在内存中占用个字节则uns ged nt型数据的取值范围为_____。
A.025 B 0~32767 C。 0~ 5535
0214483647
5. 已知字符′ ′的ASC I码为98 语句p intf ″%d,c″, ′ ′ ′
1/11页
武汉理工大学C语言期末试题
′ ) 的输出结果为_____。
A98 B。语句不合法 98 99 D。8
6. 执行语句fo (i=1 i++ 〈4 后,变量i的值是____.
A 3 。 C。 5
D。不定
7. 若有声明int [][4] 则对a数组元素的非法引用是 .
A a0 [2 ] B。 a 1 [ 。 a[-2 [
D.a 4
8. 在C语言程序中,数组名做函数调用的实参时传递给形参的是 。
A数组第一个元素的值 B。数组的首地址
。数组全部元素的值 数组元素的个数
9. 设有数组定义: cha arra ]"China” 则数组 ray所占的存储空间为 .
A。 4个字节 B。 5个字节 C。 6个字节 个字节
10.若有定义in x, ,则以下正确的赋值表达式是 。
A.p=&x =x *p&x .p=
二、判断题 每题1分共 分)
请将答案填写在下面的表格中,正确填“√”错误填“×”。
)1。 在C语言程序中程序的执行总是从main( 函数开始在main
2/11页
武汉理工大学C语言期末试题
函数中结束.
。 利用saf函数输入数据时只有格式控制,没有输入项也
能正确输入数据到内存如scan ″a=%d =d″ 。 )3. re a语句只能用于si tc h语句体中。
)4.d…whi le语句的循环体至少无条件执行一次。
( 5 构成数组的各个元素可以有不同的数据类型。
( 6.可以利用变量对数组的下标进行动态定义例如int =0ita n 。 7。 函数str n ”Ch na\n")的值是7.
8.函数的定义一般由函数首部和函数体部分组成。
)9.用户自定义的函数必须有返回值.
)10. 函数调用中的参数称为实际参数。
三、填空题 每空1分,共10分)
1 C语言程序的基本结构可以分为 、 、
三种。
2 数组[ 0下标的范围是从______到________。
3. 在语言中 取地址运算符是 指针运算符
是 。
已知n为三位整数即n〉 =100且n 〈999 求n的百位数字、十位数字、个位数字的表达式分别为 、 和 。
四、程序阅读题 每题5分共15分)
1. in d 〈std o。 h〉main
in
anf d” &*
3/11页
武汉理工大学C语言期末试题if 15)prin tf(”%" x5 if(x10) intf "d x if x>5)pr n f(”%d\”,x+5)
}
若程序运行时从键盘输入 2 后回车 则输出结果为 .
2. main( )
+)for 1 j<i j++s=+2 printf s d\n",s)
程序运行后的输出结果为 。
3. #i u 〈tio 〉main
int a,b int p1 , p2 p sanf %d d" a,&b)p1&a p=bif( 〈
{pp1 1= p2=
}
4/11页
武汉理工大学C语言期末试题prit ” d\”,a,)pritf ”% %d ", p1 , p2
若程序运行时从键盘输入 4 和 5 后回车,则输出结果为: 。
五、程序填空题. 每空3分共15分
1 .一个三位整数(10099) 若各位数的立方和等于该数自身,则称其为“水仙花数"(如 1531 +53+33 ,找出所有的这种数.
ain
nt n a b,
+
2.定义求素数的prime函数,在main调用prie函数求3~20内的所有素数。
ntprime(int
fl a = f++)if()
reak
return f
)intp ime nt)