当前位置:文档之家› 五邑大学试卷_C语言程序设计_信息学院各专业_A卷

五邑大学试卷_C语言程序设计_信息学院各专业_A卷

选择题(30%:15小题,每小题2分)
1. 以下叙述正确的是()。

A) 在C程序中,main函数必须位于程序的最前面。

B) C语言的每一行中只能写一条语句。

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

D) 一个程序的执行是从本程序的main函数开始,到本程序文件的最后一个函数结束。

2. 若有说明:int a[10]; 则对 a 数组元素的正确引用是()。

A) a[10] B) a[3.5] C) a(5) D) a[10-10]
3. 下面关于"A"的说法正确的是()。

A)它代表一个字符常量 B)它代表一个字符串常量
C)它代表一个字符 D)它代表一个变量
4. 若用数组名作为函数调用的实参,传递给形参的是( )。

A)数组的首地址 B)数组第一个元素的值
C)数组全部元素的值 D)数组元素的个数
5. 以下选项中属于C语言数据类型的是()。

A)复数型 B)记录型 C)双精度型 D)集合型
6. 设 a=5,b=6,c=7,d=8,m=2,n=2, 则执行 (m=a>b)&&(n=c<d)后n的值是( ) 。

A) 1 B) 2 C) 3 D) 4
7. 对于while语句,错误的说法是()。

A)用条件控制循环体的执行次数 B)循环体至少要执行一次
C)循环体有可能一次也不执行 D)循环体中可以包含若干条语句
8. 设a=10、b=12,则printf("%d",(a>b)?a:b); 则输出结果是 ( )。

9. 可判断变量 a为正,b为负的正确表达式是 ( )。

A) a*b <0 B) (a>0||b >0)&&a*b <0
C) (a<0||b<0)&&a*b <0 D) a>0&&a*b<0
10. 在C语言中要求参加运算的数必须是整数的运算符是()。

A) / B) ! C) % D) = =
11. 下列程序段中while循环体执行的次数是()。

int k=0;
while(k=1) k++;
A)一次也不执行 B)只执行一次
C)有语法错,不能执行 D)无限次
12. 若有以下说明,且0≤i<10,则对数组元素的错误引用是()。

int a[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;
A) *(a+i) B) p+i C) a[p-a+i] D) *(&a[i])
13.有定义语句:
int b;
char c[10];
则正确的输入语句是 ( )。

A) scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);
C) scanf("%d%s",b,c); D) scanf("%d%s",b,&c);
14. 设有如下定义:
struct sk
{ int a;
float b;
}data;
int *p;
若要使p指向data中的a域,正确的赋值语句是( )。

15. 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是()。

A)函数调用可以作为独立的语句存在
B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中
D)函数调用可以作为一个函数的形参
填空题(20%:20空,每空1分)
1. C 语言对数组下标的引用一般从开始。

2. C 语言中,一个函数一般由两个部分组成,它们是和。

3. 一个 C 程序中至少应包括一个 ____函数。

4. 根据变量的作用域,C语言的变量分为和。

5. 设 x为整型变量,则描述数学式“ 1<x<10”的表达式是___ ___;
设ch为字符型变量,可用表达式_____ ______判断该变量保存字符是否为大写字母。

6. 在C语言中,表达式1/2的值是,表达式1.0/2 的值是。

7. 下列程序段定义了一个数组并循环输入每个元素的值:
int i,a[3];
for(i=0;i<3;i++)
scanf(“%d”, _ ____);
8. 若定义了int a[10],*p; 将数组元素a[8]的地址赋给指针变量p的赋值语句是
___ 。

9. 设一个C程序中有如下定义:
char line[]="china";
则ptr中为,line[1]中为__ __,line[5]中为__ _。

10. 下列程序段的输出结果是__ ____。

main()
{ char b[]="Hello!"
b[5]=’\0’;
printf("%s\n",b);
}
11. 表示“整数x的绝对值大于5”时值为“真”的C语言表达式是__ __。

12. 设整型变量a的初值为3,则执行表达式“a+=3”后a的值是。

13. 与k=n++完全等价的表达式是__ ___。

14. C语言中实现选择结构的语句是if语句和。

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

(20%:4小题,每小题5分)
1.
main()
{ int i,j,x=0;
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
if (j%2= =1) continue;
x=x+1;
}
}
printf(“%d”,x);
}
程序运行后输出:。

2.
main()
{ int f1=1,f2=1;
for(i=1; i<=3; i++)
{
printf("%d %d ",f1,f2);
f1=f1+f2;
f2=f2+f1;
}
}
程序运行后输出:。

3.
main()
{
int i,k,a[10],p[3];
k=5;
for ( i=0;i<10;i++)
a[i]=i;
for (i=0;i<3;i++)
p[i]=a[i*(i+1)];
for ( i=0;i<3;i++)
k=k+p[i]*2;
printf(“%d”,k);
}
程序运行后输出:。

4.
int max(int x, int y)
{ return x>y?x:y; }
int main()
{
int a=3,b=8,c=6;
printf("%d",max(a,max(b,c)));
return 0;
}
程序运行后输出:。

程序填空(根据给出的程序功能说明,补充完整程序中缺少的代码,每一
)(16%:3小题,共8空,
1. 以下程序的功能是:输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是小写字母,则把它变成大写字母;其它字符不变。

main()
{ char ch;
scanf(“%c”, &ch);
if(____________)ch=ch+32;
else if(ch>=’a’&&ch<=’z’) ________________;
printf(“%c”,ch);
}
2. 下面程序中的数组a包括10个整型元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素的形式输出数组b。

main()
{
int a[10],b[10], i;
for(i=0; ___________; i++)
scanf(“%d”,&a[i]);
for (i=1;___________; i++)
b[i]=a[i]-a[i-1];
for(i=1;i<10;i++)
{ printf(“%3d”, b[i]);
if (___________) printf(“\n”);
}
}
3. 找出输入的10个整数中的最大数。

#include <stdio.h>
main()
{ int k,max, ;
for(k=0;k<10;k++)
scanf(“%d”,&num[k]);
max=0;
for(k=9; ; k--)
if (num[max]<num[k]) ;
printf (“the max is %d”,num[max]);
return 0;
}
1.编写程序,要求从键盘输入两个整数x和y,并将较大值输出来。

2. 编写函数void fun(int *s, int t , int *k),该函数求数组中的最小值的下标,并存放到指针k所指示的存储单元中,例如设有数组a和变量j:
int a[10]={876,675,896,101,301,401,980,431,451,777}, j ;
则下列调用后
fun(a,10,&j);
j的值为3
void fun(int *s, int t , int *k)
{
}。

相关主题