外胚型-胃痛的英语
学院领导
审批并签名
A B卷
广州大学
学年第 学期考试卷
课程
程序设计基础
考试形式(开闭卷,考试查)
信息与机电工程学院 系 专业
班级
学号 姓名
题次
分数
评分
一
10
二
20
三
50
四
20
总 分
评 卷 人
一、
选择题(每题1分,共10分)
1、一个C语言源程序是由( )。
A、一个主程序和若干个子程序组成
B、一个或多个函数组成
C、若干个过程组成
D、若干个子程序组成
2、以下不正确的C语言标识符是( )。
A、ABC
B、abc
C、a_bc
D、ab.c
3、设n=10,i=4,则运算n%=i-1执行后,n 的值是( )。
A、0
B、3
C、2
D、1
1
4、设int a=4,b=2,则++a-b的结果为(
),a的结果为( );b的结果
为( )。
A、2
B、3
C、4
D、5
5、C语言用( )表示逻辑“假”的值。
A、true
B、t或y
C、非零整数值
D、整数0
6、对于for(表达式1;;表达式3)可以理解为(
A、for(表达式1;0;表达式3)
B、for(表达式1;1;表达式3)
C、for(表达式1;表达式1;表达式3)
D、for(表达式1;表达式3;表达式3)
7、在定义int
a[10];之后,对a的引用正确的是(
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
8、以下不正确的叙述是( )。
A、宏替换不占用运行时间
B、宏名无类型
C、宏替换只是字符替换
D、宏名必须用大写字母表示
2
。
)。
)
二、 填空题(每空2分,共20分)
阅读以下C代码,将答案填入___(n)___内。
[程序1]
#include
int p(int k,int a[])
{int m,i,c=0;
for(m=2;m<=k;m++){
for(i=2; i<=m;i++)
if(!(m%i)) break;
if(i==m) a[c++]=m;
}
return c;
}
#define MAXN 20
void
main ( )
{int i,m,s[MAXN];
m=p(13,s);
for(i=0;i
printf(
}
函数int p(int k,int
a[])的功能是(1)__________________。
[程序2]
本程序找出正文文件“”中的各个不同整数。该正文文件中各整数
间以空格字符、TAB符(制表符)、
回车符分隔。程序中用数组b[]存贮不同的
整数,变量k为已存入数组b中的不同整数的个数,并假定
文件中的不同整数
个数不超过1000个。
#include
#define N 1000
main ( )
{ FILE
___(2)___;
int b[N],d,i,k
if
((fpt=fopen(“”,”r”)==NULL) { * 以读方式打开文件 *
printf (“Cannot open file.n”);
return;
}
k=0;
while (fscanf
(___(3)___)==1) { * 从文件中读一个整数 *
3
b[k]=d;
for (i=0;b[i]!=d;i++);
if
(i==k) k++;
}
fclose(fpt);
for
(i=0;i
}
[答案]
(2)________________________________________
(3)________________________________________
[程序3]
#include
void s(int
a[],int n)
{int i,j,t;
for (i=0;i
a[j+1]=t;
}
}
main( )
{int i,c[]={15,3,8,9,6,2};
s(c,6);
for(i=0;i<6;i++)
printf(
printf(
}
程序3的输出结果是(4)______________;
函数s(int
a[],int n)的功能是(5)_________________________。
4、执行下列语句后,a的值是___________。
int
a=12; a*=2+3;
5、定义int
a[]={1,2,3,4,5,6},*p=a;表达式(*++p)--的值是______。
4
6、设a=13.6,b=8
表达式a+b%3*(int)(a-b)4的值为________。
7、C语言源程序
文件的后缀是___________,经编译后生成的文件的后缀是
_________,连接后生成
的文件的后缀是.exe。
三、 理解题(每题5分,共50分)
1、以下程序,从键盘上输入”how are you?”,输出是什么?
main()
{ char a[7];
scanf(“%s”,a);
printf(“%s”,a);
}
2、以下程序执行结果是什么?
#include
main()
{
int
a[3][3]={1,2,3,4,5,6,7,8,9},i,s=1;
for(i=0;i<=2;i++)
s*a[i][i];
printf(“s=%dn”.s);
}
3、若已定义int a[]={1,2,3,4,5,6};且有*p=a;则表达式(*++p)+
+的值是
__________.
5
4、以下程序执行结果是:
#include
void FUN(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
void
main()
{
int a=10,b=20;
FUN(a,b);
printf(“%d,%d”,a,b);
}
5、以下程序的执行结果是:
# include
typedef struct{
long x[2];
int y[4];
char z[8];
}MYTYPE;
void main()
{
MYTYPE a;
printf(
}
6
6、以下程序的执行结果:
#include
main()
{
int *p,i;
i=5;
p=&i;
i=*p+10;
printf(“i=%dn”,i);
}
7、以下程序的执行结果
#include
int x=1;
func(int x)
{
x=3;
}
void main()
{
func(x);
printf(“x=%dn”,x);
}
8、以下程序的执行结果
#include
struct stru
{
int x;
char c;
};
7
void
func(struct stru *b)
{
b->x=20;
b->c='y';
}
void main()
{
struct stru a={10,'x'},*p=&a;
func(p);
printf(
}
9、以下程序 输入language
programming
#include
main()
{
char str[30];
gets(str);
printf(
}
10、以下程序的执行结果
#include
main()
{
int
i,j;
for(i=4;i>=1;i--)
{
printf(“*”);
for(j=1;j<=4-i;j++)
printf(“n”);
}
}
8
四.编程(每小题10分, 共20分)
1、编写一段将n个数按输入顺序的逆序排列输出的程序,要求应用指针且不另
外开设数组。
9
2、编写一段实现二分法查找的程序。
10