班级: 学号: 姓名: B) C语言中没有逻辑类型但有集合类型
C)C语言中有逻辑类型但没有集合类型
D) C语言中既没有逻辑类型也没有集合类型
(第1页 共8页)
6、以下对C语言函数的有关描述中,正确的是:
A)调用函数时,只能把实参的值传送给形参,形参的值不能
传送给实参
B)函数既可以嵌套定义又可以递归调用 C)函数必须有返回值,否则不能使用函数
D) 程序中有调用关系的所有函数必须放在同一个源程序文件
中
7、在C语言中,不正确的int类型的常数是:
A) 32768 B)0 C) 037 D) 0xaf
8、以下叙述中不正确的是: A)在不同的函数中可以使用相同名字的变量 B)函数中的形式参数是局部变量
C)在一个函数内定义的变量只在本函数范围内有效
D)在一个函数内的复合语句中定义的变量在本函数范围内有效
9、以下说法中正确的是:
A)#define和printf都是C语句 B)#define是C语句,而printf不是 C)printf是C语句,但#define不是
D)#define和printf都不是C语句
10、若有以下定义和语句:double r=99,*p=&r; *p=r;则以下
正确的叙述是:
A)以下两处的*p含义相同,都说明给指针变量p赋值
B)在“double r=99,*p=&r;”中,把r的地址赋值给了p所
指的存储单元
C)语句“*p=r;”把变量r的地址值赋给指针变量p D)语句“*p=r;”取变量r的值放回r中
三、填空题:(24分 每空2分)
1、下面程序的功能是:输入一行字符,统计其中有多少个单词,单词之间
用空格分开。请填空完成。
16 班级: 学号: 姓名: # include
{char str[81];
int I,( 【1】 ); char c; gats(str);
for(I=0;( 【2】 )!=?\\0?;I++) if(c==? ?)word=0; else if( 【3】 ) {word=1;
( 【4】 )}
printf(“There are %d word in line. \\n”,num); }
2、下面程序的功能是:用选择排序法对数组中10个数据按由小到大排序。请填空完
成。
void sort(int a[],int n) {( 【5】 ) for(I=0;I { ( 【6】 ) for(j=I+1;j main() {int b[10],I; printf(“enter the array\\n”); for(I=0;I<10;I++) scanf(“%d”.&b[I]); ( 【8】 ) printf(“the sorted array: \\n”); for(I=0;I<10;I++) printf(“%d “,b[I]); printf(“\\n”); } 3、判断m是否是素数 #include 17 班级: 学号: 姓名: { int m,i,k; scanf(“%d”,&m); ( 【9】 ) for(i=2;i<=k;i++) if(m%i==0) (【10】 ); if(i>=k+1) printf(“%d is a prime number\\n”,m); else printf(“%d is not a prime number\\n”,m); } 4、假设当年产值为100,工业产值的增长率分别为6%、8%、10%、12%时, 求工业产值分别经过多少年可实现翻番。请填空完成。 main() {int y[4],i; float s[4]={100,100,100,100},c[4]={.06,.08,.10,.12}; clrscr(); for(i=0;i<4;i++) {y[i]=0; while( 【11】 ) {s[i]=s[i]*(1+c[i]); ( 【12】 )} printf(\ } } 四、读程序,写出程序运行结果。(24分 每题4分) 1、 main() {int x=10,y=10,I; for(I=0;I>8;y=++I) printf(“%d %d”,x--,y); } 2、main() {int m=37,n=13; while(m!=n) {while(m>n) m=m-n; while(n>m) n-=m; } 18 班级: 学号: 姓名: printf(“m=%d\\n”,m); } 3、main() { int x=9; for(;x>0;x--) {if(x%3==0) {printf(“%d”,--x); continue; } } } 4、 main() { int a=7,b=2; float x=2.5,y=4.7,z; z=x+a%3*(int)(x+y)%2/4; printf(“%f\\n”,z); z= (a+b)/2+(int)x%(int)y; printf(“%f”,z); } 5、main() {int x[]={0,1,2,3,4,5,6,7,8,9}; int s,I,*p; s=0; p=&x[0]; for(I=1;I<10;I+=2) s+=*(p+I); printf(“sum=%d”,s); } 6、main() {int k=4,m=1,p; p=func(k,m); printf(\ p=func(k,m); printf(\ } func(int a,int b) {static int m=0,i=2; i+=m+1; m=i+a+b; return(m); 19 班级: 学号: 姓名: } 五、编程题:(20分 每题10分) 1、利用指针完成。输入两个整数,按先大后小的顺序输出。 2、编程完成两个字符串的连接。(不使用strcat( )函数)。 一、判断题:(12分) 1、 2、 3、 4、 5、 6、 二、选择题:(共20分,每题2分) 1、 2、 3、 4、 5、 6、 7、 8、 9、 10、 三、填空题:(共24分,每空2分) 1、 2、 3 、 4、 5、 6、 7、 8、 9、 10、 11、 12、 四、读程序,写出程序的运行结果(共24分,每题4分) 1、 2、 3、 4、 5、 6、 五、编程:(20分) 20