C语言期末考试真题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if (k%13 == 0 ||k%17==0)
{
m=m+k;
mc++;
}
k--;
}
/***********SPACE***********/
return m;
}
main ( )
{
printf("%d\n", fun (500));
}
---------------------------------------------------------
For(i=1:i<=n:i++)f*=i:
B.f=1:
For(i=1:i<n:i++)f*=i:
C.f=1:
For(i=n:i>1:i++)f*=i:
D.f=i:
For(i=n:i>=2:i--)f*=i:
17.(B)t为int类型,进入下面的循环之前,t的值为0
While(t=1)
{......}
12.(F)若a是实型变量,c程序中允许以下赋值a=10:因此实型变量中允许存放整型变量。
13.(T)在c语言中,逻辑“真”等价于不等于0的数。
14.(F)开关语句switch最多可以形成3个分支.
15.(T)Int a=1,b=2,c=3:if(a>c)b=a:a=c:c=b:则c的值是2.
16.(T)Int i=3,j=5:if(i>j):是正确的。
二、选择题
1.(A)是构成c语言程序的基本单位。
A函数
B变量
C子程序
D语句
2.(B)以下叙述中正确的是
A.c语言的源程序不必通过遍译就可以直接运行。
B.语言中的每条可执行语句最终都将被转换成二进制的机器指令
C.c源程序经编译形成的二进制代码可以直接运行
D.c语言中的函数不可以单独进行编译
3.(C)c语言中的标识符只能有字母,数字和下划线三种字符组成,且第一个字符(?)
A说明变量
B说明存储类型
C初始化
D未尾不写分号
25.(D)使用共用体变量不可以:
A节省存储空间
B简化程序设计
C进行动态管理
D同时访问所有成员
三、程序填空
---------------------------------------------------------
1.功能:输出1到100之间每位数的乘积大ຫໍສະໝຸດ Baidu每位数的和的数。
例如:数字26,数位上数字的乘积12大于数字之和8。
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,k=1,s=0,m;
for(n=1;n<=100;n++)
{
k=1;
s=0;
{
/**********Program**********/
int i;
B它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C它们的运算对象可以是int型变量,但不可能是double型变量和float型变量
D它们的运算对象可以是char型变量、int型变量和float型变量
9.(D)逻辑运算符两侧运算对象的数据类型(?)
A只能是0或1
B只能是0或非0正数
else printf(" not found"); }
四、程序设计
---------------------------------------------------------
1.题目:请编写函数fun,其功能是:将一组得分中,去掉一个最高分和一个最低分,然后求平均值,并通过函数返回。函数形参a指向存放得分的数组,形参n中存放得分个数(n>2)。例如:若输入9.9 8.5 7.6 8.5 9.3 9.5 8.9 7.8 8.6 8.4十个得分,则输出结果为:8.687500。
{int x=0,s=0;
While(!X!=0)s+=++x;
Printf(“%d”,s);}
A.0
B.1
C.语法错误
D.无限循环
20.(B)int a[10];给数组a的所有元素分别赋值为1、2、3、.....的语句是?
A.for(i=1;i<11;i++)a[i]=i;
B.for(i=1;i<11;i++)a[i-1]=i;
C在switch语句必须使用break语句
D.break语句只能用于switch语句中
12.(A)结构化程序由三种基本结构组成的算法(?)
A可以完成任何复杂的任务
B只能完成部分复杂的任务
C只能完成符合结构化的任务
D只能完成一些简单的任务
13.(C)用下列语句定义a,b,c,然后执行b=a、c=’b’+b,则b,c的值是?
}
---------------------------------------------------------
2.功能:计算并输出500以内最大的10个能被13或17整除的自然数之和。
-------------------------------------------------------*/
{i=(start+end)/2;
if (x==a[i])
{ flag=1; break; }
/***********SPACE***********/
else if (x>a[i])start=i+1;
else end = i-1; }
if(flag==1) printf("found:a[%d]",i);
则以下叙述中正确的是?
A.循环控制表达式的值为0
B.循环控制表达式的值为1
B.循环控制表达式不合法
D.以上说法都不对
18.(D)以下不正确的说法是?
A.在不同函数中可以相同名字的变量
B.形式参数是局部变量
C.在函数内定义的变量只在本函数范围内有效
D.在函数内的复合语句中定义的变量在本函数范围内有效
19.(B)以下程序的执行结果(?)
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("please enter the number:\n");
scanf("%d",&x);
/***********SPACE***********/
for(start=0,end=9;start<=end;)
/***********SPACE***********/
注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入
所编写的若干语句。
-------------------------------------------------------*/
#include <stdio.h>
double fun(double a[ ] , int n)
/***********SPACE***********/
m=n;
/***********SPACE***********/
while(m>0)
{
k*=m%10;
s+=m%10;
/***********SPACE***********/
m=m/10;
}
if(k>s)
printf("%d ",n);
}
C.for(i=1;i<11;i++)a[i+1]=i;
D.for(i=1;i<11;i++)a[0]=1;
21.(D)Int i,j,a[2][3]按照数组a的元素在内存的排列列次序不能将数1,2,3,4,5,6存入a数组的是?
A.for(i=0; i<2:;i++)for(=0: j<3: j++)a[0l=i*3+j+1;
C.static
D.extern
6.(C)以下字符中不是转义符的是?
A、\a’
B.\b’
C.\c’
D.’\\’
7.(D)putghar函数可以向终端输出一个(?)
A整型变量表达值
B实型变量值
C字符串
D字符或字符型变量值
8.(D)以下关于单目运算符++、--的叙述值正确的是?
A它们的运算对象可以是任何变量和常量
3.题目:用折半查找法在有序数组中查找指定元素x
-------------------------------------------------------*/
#include<stdio.h>
void main()
{ int a[10],x,i,start,end,flag=0;
printf("输入10个有序数:\n");
C只能是整型或字符型数据
D可以是任何类型的数据
10.(D)下列运算符正是c语言关系运算符的是?
A.~
B.!
C.&
D.!=
11.(B)下列关于switch语句和break语句的结论中,正确的是?
A.break语句是switch语句中的一部分
B.在switch语句中可以根据需要使用或不使用break语句
21.(F)二维数组在内存中储存以列为主序方式存放。
22.(T)c程序中#include和#define均不是c语句
23.(F)通过return语句,函数可以带回一个或一个以上的返回值
24.(T)在程序中定义了一个结构体类型后,可以多次用它来定义具有该类型的变量
25.(T)对结构体类型的变量的成员可以象普通变量一样参与各种运算
C.4
D.死循环
15.(B)若变量已经正确定义,有下列程序段输出结果是?
i=0:
Do printf(“%d”,i): while(i++):
Printf(“%d\n”,i):
A.0,0
B.0,1
C.1,1
D.程序进入无限循环
16.(D)设变量已经正确定义,则以下能正确计算f=n!的程序段是?
A.f=0:
6.(T)整数-32100可以赋值给int型和long int型变量。
7.(F)表达式(j=3,j++)的值是4.
8.(F)在c程序中,赋值运算符的优先级最低。
9.(F)7&3+12的值是15.
10.(F)若a是实型变量,在执行了a=5后,a将变为整型变量。
11.(F)若有i=10,j=2:则执行完i*=j+8:后i的值是28.
B.for(i=0; 1<3: i++)for(=0 j<2: j++)a[j][i]=j*3+i+1;
C.for(i=0;i<6;i++)a[i/3][i%3]=i+1;
D.for(i=1;i<6;i++)a[i][i]=i;
22.(B)以下不正确的说法是c语言规定:
A.实参可以是常量,变量或表达式
17.(F)若有i=10,j=0:则执行完语句if(j=0):i++:elsei - -:i的值为11
18.(T)break语句只能用于循环语句switch-case语句中。
19.(T)若有说明int c:则while(c=getchar()):是正确的c语句。
20.(T)Int a[10]:for(i=1:i<10:i++)a[i-1]=i:能使数组元素分别取值{1,2,3,4,5,6,7,8,9,10}.
第五套
一、判断题
1.(F)在一个c程序中,main函数必须出现在所有函数之前。
2.(F)#include”stdio.h”是每个程序中必须写的。
3.(F)c程序总是从程序的第一条语句开始执行的。
4.(F)以下各数均不是合法的八进制数:256,03A2,-0127。
5.(F)语句scanf(“%7.2f”,&a):是一个合法的scanf函数。
#include <conio.h>
#include <stdio.h>
/***********SPACE***********/
int fun(int k)
{
int m=0, mc=0;
/***********SPACE***********/
while (k >= 2 &&mc<10)
{
/***********SPACE***********/
A必须为字母
B必须为下划线
C必须为字母或下划线
D可以是字母,数字和下划线中任一字符
4.(A)没有说明语句:char a=’\72’;则变量a(?)
A包含1个字符
B包含2个字符
C包含3个字符
D说明不合法
5.(B)为了提高程序的运行速度,在函数中对于整型或指针可以使用什么型的变量?
A.auto
B.register
B.形参可以是常量,变量或表达式
C.实参可以为任何类型
D形参应与其对应的实参类型一致
23.(A)以下正确的说法是在C语言中:”
A实参和与其对应的形参各占用独立的存储单元
B实参和与其对应的形参共吉用一个存储单元
C只有当实参相与其对应的形参科名时共占用存储单元
D形参是虚拟的不占用存储单元
24.(D)在定义构造数据类型时不能:
Long a=0xffffff,
int b:char c:
A.0ffffff和0x61
B.-1和98
C。-1和97
D指向同一地址
14.(A)下列程序执行后的输出结果是?
Void main()
{ int k=5:
While(--k) printf(“%d”.k=3)
Printf(“\n”):}
A.1
B.2
相关文档
最新文档