传奇sf诛仙私服变态传奇私服传奇合击私服传奇归来私服传奇连击私服热血传奇私服新开传奇私服诛仙sf诛仙2私服变态传奇sf中变传奇合击私服英雄合击私服1.85合击传奇私服1.76传奇私服发布网1.85传奇私服发布网连击传奇私服连击私服

首页试题


刘甲耀、严桂兰教授新著作问世

Core Java应用程序设计教程

C++程序设计简明教程

C#程序设计

我校开展省级精品课程建设

 
 


私立华联学院

《C语言程序设计》2004年期末考试试题
考试时间:90分钟(B卷)
系 专业 班级 姓名

说明:
1) 考生运行“考试系统2.2”后,正确输入本人姓名、学号,稍后进入发试卷程序,得到考试文件在“E:\B卷”文件夹中,开始做题。
2) 答题完毕,必须按屏幕右下角黄色小框“按这里”,点击”提交试卷”,待返回”提交成功”对话框后方可离开考场。
3) 请填写本试卷上面的系、专业、班级和姓名等项目。

一、选择题(本大题共20个选项,【1】~【20】每个选择项3分,共60分)
注意:答案一律填在下表中
1 2 3 4 5 6 7 8 9 10

11 12 13 14 15 16 17 18 19 20

1. 在C语言中,下列合法的变量名是 【1】 。
【1】 A) b.cat B) -p12 C) typedef D) p_12
2.C语言中简单数据类型包括【2】 。
【2】 A)整型、实型、字符型 B)整型、实型、逻辑型
C)整型、字符型、逻辑型 D)整型、实型、逻辑型、字符型
3.以下整数值中,不正确的八进制或十六进制数是【3】 。
【3】 A)0x9a B) 012 C)’\x41’ D) 090
4.下列i, j, k均为整型变量,选项中不正确的C语言赋值语句是【4】 。
【4】 A)i+1 = k; B)i = j = k = 1;
C)i = j += ++k; D)j = i+1 == i++;
5. 为表示x≥y≥z,须用C语言表达式的是 【5】 。
【5】 A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=x) C)x>=y>=z D)(x>=y)&(y>=z)
6.下列程序的输出结果为【6】 。
main()
{
int i=59;
printf("%5o,%-10d,%x\n", i, i, i);
}
【6】 A) 73,59 ,3b B) 073,59 ,0x3b
C)00073, 59,3B D)73 , 59,3B
7.以下程序的运行结果是【7】 。
main()
{
int a, b, c;
a = b = c = 1;
if ( a++ || ++b ) c++;
printf("%d, %d, %d\n", a, b, c);
}
【7】 A)2, 1, 2 B)1, 2, 1 C)2, 2, 2 D)2, 2, 1
8. 下列程序运行时,若从键盘输入5,则输出结果是 【8】 。
main()
{
int a;
scanf(″%d″,&a);
if(a++>5) printf(″%d\n″,a);
else printf(″%d\n″,a--);
}
【8】 A)7 B)4 C)5 D)6
9.以下程序的输出结果是 【9】 。
#include "stdio.h"
#define SUM(y) 1+y
main()
{ int x=2;
printf("%d\n", SUM(5)*x );
}
【9】 A)10 B)11 C)12 D)15
10.标准函数 fgets(s, n, f) 的功能是【10】 。
【10】 A) 从文件f中读取长度为n的字符串存入指针s所指的内存
B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
C) 从文件f中读取n个字符串存入指针s所指的内存
D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存
11.以下程序的输出结果是【11】 。
#include "stdio.h"
main()
{
int a=10,b=20;
swap(&a, &b);
printf("%d,%d\n", a, b);
}
swap(int *p, int *q)
{
int t;
t=*p; *p=*q; *q=t;
}
【11】 A)10,10 B)20,20 C)10,20 D)20,10
12.以下程序的输出结果是【12】 。
#include "stdio.h"
main()
{
printf( "%d\n", fac(5) );
}
fac(int n)
{
int s;
if(n==1) return 1;
else return n*fac(n-1);
}
【12】 A)120 B)60 C)6 D)1
13.循环语句的循环体中执行 continue 语句,其作用是【13】 。
【13】 A)立即终止程序运行
B)继续执行 continue 语句之后的循环体各语句
C)结束本次循环
D)结束本次循环,跳出循环
14.以下程序的输出结果是【14】 。
main()
{
union example
{
struct
{ int x;
int y;
} in;
int a[2];
} e={ 0, 0 };
e.a[0]=1; e.a[1]=2;
printf("%d,%d\n",e.in.x,e.in.y);
}
【14】 A)2,1 B)0,0 C)1,2 D)0,1
15.以下程序运行后,输出结果是【15】 。
main()
{
int y=18, i=0, j, a[8];
do {
a[i] = y%2;
i++;
y = y/2;
}while (y>=1);
for(j=i-1; j>=0; j--) printf("%d",a[j]);
printf("\n");
}
【15】 A)10010 B)01001 C)00110 D)10100
16. 设有下列语句,则【16】不是对a 数组元素的正确引用,其中0≤i<10。
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
【15】 A)a[p-a] B) *(&a[i]) C)p[i] D)*(*(a+i))
17. 设int a[][4]={0,0};,则下列错误的描述是: 【17】 。
【17】 A)数组a 的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值0
18. 下列程序的运行结果是 【18】 。
#include <stdio.h>
main()
{ int a=1,b=0;
switch(a)
{
case 1:
switch(b)
{
case 0: printf("0000\n");
case 1: printf("1111\n");break;
}
case 2:printf("2222\n");break;
}
}
【18】 A) 0000 B) 0000 C) 0000 D) 1111
1111 2222 2222
2222
19. 设有说明语句 char *p,str[5]; 则下列正确的语句是 【19】 。
【19】 A) scanf("%s",*str); B) p=str;
C) *p="good"; D) str="good";
9. 下列程序的运行结果是【9】。
#include <stdio.h>
main()
{ int a=3,b=4;
a=a^b;
b=b^a;
a=a^b;
printf("%2d %2d\n",a,b);
}
【20】 A) 3 4 B) 4 3 C) 3 3 D) 4 4
二、填空题(本大题共10个空,每个空4分,共40分。)
1.以下程序从读入的整数数据中,统计大于零的整数个数和小于零的整数个数,用零结束
输入。
#include "stdio.h"
main()
{
int n, i, j;
i = j = 0;
scanf("%d", &n);
while( 【1】 )
{
if( n > 0 )
i++;
else
j++;
scanf("%d", &n);
}
printf("正数的个数为:%d,负数的个数为:%d\n", i, j);
}
2. 下列程序是实现打印出所有的"水仙花数".所谓"水仙花数"是指一个三位数的各位数字的立方和等于该数本身.例如,153是一个水仙花数,因为153=1^3+5^3+3^3。
main()
{ int i,j,k,n;
for(n=100;n<=999;n++)
{
k=n%10;
j=(n%100)/10;
i= 【2】;
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) printf("%d\n",n);
}
}
3. 下列程序是实现计算定积分的通常采用累加梯形面积的方法。
定积分公式分别是: ∫(1+x*x*x)dx,∫(1+2*x+2*x)dx.
float func1(float x)
{ float f;
f=1+x*x*x;
return(f);
}
float func2(float x)
{ float f;
f=【3】;
return(f);
}
float interg(float (*p)(),float a,float b)
{ float area,h,y,x1;
int i,n;
y=0.0;
n=100;
h=(b-a)/n;
for(i=0;i<n;i++)
{
x1=a+i*h;
y+=(*p)(x1);
}
area=y/2;
return(area);
}
#include <stdio.h>
main()
{ float y1,y2;
y1=interg(func1,0.0,1.0);
y2=【4】;
printf("y1=%6.2f\ny2=%6.2f\n",y1,y2);
}
4. 假定文件file1.txt存在,下列程序是实现把该文件先显示在屏幕上,然后再全部复制到文件file2.txt中。
#include <stdio.h>
main()
{ FILE *in,*out;
in=fopen("file1.txt","r");
out= 【5】;
while(!feof(in)) putchar(fgetc(in));
while(!feof(in)) fputc( 【6】,out);
fclose(in);
fclose(out);
}
5. 下列程序是实现从10个数中找出最大值和最小值。
int max,min;
find_max_min(int *p,int n)
{
int *q;
max=min=*p;
for(q=p;q<【7】;q++)
if(【8】) max=*q;
else if(min>*q) min=*q;
}
main()
{
int i,num[10];
printf(″Input 10 numbers:″);
for(i=0;i<10;i++) scanf(″%d″,&num[i]);
find_max_min(num,10);
printf(″max=%d,num=%d\n″,max,min);
}
6. 下列程序用来统计已建好的单向链表中结点的个数,其中head指向链表首结点,count用来统计结点个数。
struct node
{
char data;
struct node *next;
};
main()
{
struct node *p,*head;
int count=0;
p=head;
while(p!=【9】)
{
count++;
p=【10】;
}
printf(“%d\n”,count);
}


 
   

2006年 私立华联学院 版权所有