A 套 第 5 页 共 4 页
学号 姓名 班级 考试时间 年 月 日
装 订 线
西 安 财 经 学 院 试 题(卷)纸
命题教师 周少敏 学期 2006 — 2007 学年第 1学期
使用班级 信本05级、计本05级 考核方式 闭卷笔试
课程名称 程序设计基础(C语言) 阅卷教师签名
题号
一
二
三
四
五
六
七
八
九
十
总分
得分
注意事项:
命题教师:1.出题用五号字、宋体输入,打印用正规A4纸张。
2.装订线以外的各项均由命题教师填写,不得漏填。
考 生:1.装订线内的“班级”、“学号”、“姓名”、“时间”等栏由考生本人填写。
2.不得用红色笔,铅笔答题,否则试卷无效。
第一题
得分
一、 填空题(每空2分,共20分)
1.C程序上机运行一般要经过 (编译)生成目标程序,然后经过连接生成可执行程序。
2.代数表达式 的C语言表达式是 .(-b+sqrt(b*b-4*a*c))/(2*a) 。
3.设有语句 int a=3; 表达式 a+=a*=a+1 的值是 24 。
4.C程序由函数构成,其中 主 函数有且仅有一个。
5.变量的定义语句为:int a=10,*p=&a,**q=&p;格式输出语句
printf("%d,%d",a,*p+**q) 的输出结果是 20 。
6.设有语句 char s[]="abcd_123",数组s的长度是 9。
7.结构体定义为
struct node{
int num;
char name[20];
float score[3];
} uu;
表达式 sizeof(uu)的值是 34 。
8.设有语句为int i=10; printf("%d,%d",++i,++i);输出是 12。
9.动态存储分配函数 malloc(sizeof(float)*10)为用户分配了40 个字节。
10.C语言中数据文件分为ASCII码文件和 二进制 文件两类.
第二题
得分
二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分)
1.下列符号串中,属于C语言合法标识符的是(D )。
A. else B. a+2 C. 2x1 D. x_1
2.优先级最高的运算符是(C )。
A. + B. && C. -> D. +=
3.语句int i,j ;定义的整型变量占两个字节,其取值范围是( D ).
A.-128~127 B.0~255
C.0~65535 D.-32768~32767
4.程序中调用数学函数,程序开始处应有命令( A )。
A. #include "math.h" B. #include "stdio.h"
C. #include "string.h" D. #include "stdlib.h"
5.设char ch='B',执行语句ch=(ch>='A'&& ch<='Z')?ch+32:ch;后ch的值是( D )。
A. 'A' B. 97 C. 'B' D. 'b'
6.定义内部变量缺省存储类型,默认存储类型是( A )。
A. auto B. static C. register D. extern
7.若x=3,y=4,z=4 ,表达式z>=y>=x?1:0 的结果是( A )。
A. 0 B. 1 C. 非0 D. T
8. 定义指向函数的指针变量的语句是( D )。
A. int *p[5]; B. int **p;
C. int (*p)[2]; D. int (*p)(int x);
学号 姓名 班级 考试时间 年 月 日
装 订 线
学号 姓名 班级 考试时间 年 月 日
装 订 线
9.定义变量的语句为 int a[10],*p=a; 对数组元素a[5]的不正确引用是( A )。
A. *p[5]; B. p[5]
C. *(p+5) D. *(a+5);
10 结构体定义为
struct node{
int num;
char ch;
float score;
} s,*p=&s;
对结构体成员不正确的引用是( B )。
A. (*p).ch B. *p->ch
C. p->ch D. s.ch
第三题
得分
三、程序阅读题(阅读程序,写出程序运行结果。每小题6分,共30分)
(1)
main( )
{ int a[3][3]={{9,7,5},{3,1,2},{4,6,8}},i,j,s1,s2;
s1=0;s2=0;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{ if(i==j) s1=s1+a[i][j];
if(i+j==2) s2=s2+a[i][j];
}
printf("%d , %d\n",s1,s2);
}
运行结果:18,10
(2)void covf(int *s , int n);
main( )
{int i;
int a[10];
for(i=0;i<10;i++)
a[i]=i+i;
covf(a,10);
for(i=0;i<10;i++)
print("%5d",a[i]);
}
void covf(int *s , int n)
{ int *p,*q,t;
p=s; q=s+n-1;
while(p=0)
{printf(″%s\n″,argv[k]);
k--;
}
}
文件名为li01.exe命令行输入是
li01 file1.c file2.c file3.c
输出结果:file3.c
file2.c
file1.c
li01
(5)
int x=30,y=50;
int sub(int x, int y)
{
y=x>y? x:y;
return y;
}
main()
{
{ int x=100;
printf(″%d\n″,sub(x,y));
}
printf(″%d,%d\n″,x,y);
}
运行结果:100
30 50
四、程序填充题(根据题意,在程序画线处添上恰当的语句,使程序完整。每小题6分,共12分)
1. 求100~999之间的水仙花数(一个三位整数等于它自己的每一位数字的立方和,称该数为“水仙花数”,如:153=13+53+33)。
main()
{ int i,j,k,n;
for(n=100 ;n<= 999 ;n++)
{ i=n/100;
j=n/10%10;
k=n%10;
if(i*i*i+j*j*j+k*k*k==n )
printf(″%d″,n);
}
学号 姓名 班级 考试时间 年 月 日
装 订 线
printf(″\n″);
}
2.读入一字符串,将其中的大写字母变为小写字母并输出。
main( )
{char str[80];
int i;
scanf(″%s″,str)
i=0 ;
while(str[i]!='\0')
{ if(str[i]>=’A’&&str[i]<=’Z’ )
str[i]=str[i]+32
i++;
}
printf(″%s″,str);
}
第五题
得分
五、编程题(一、二小题各9分,三题10分,共28分)
1. 编写程序求两个正整数的最大公约数和最小公倍数。
2. 编写求一个字符串长度的函数(要求用字符数组或指针)。
3. 编写程序求菲波那契数列的前二十项并输出,要求每行输出5项(菲波那契数列:1,1,2,3,5,8,13......)。
1. int hcf(int u, int v)
{ int r;
if(u20;i++)
{if(i%5==0) printf(″\n″);
printf(″%5d″,a[i]);
}
}
展开阅读全文