五邑大学考试试题
未经允许,不能转载
一、单选题
1.设有int x=9; 则表达式( 1/3 * ++ x ) 的值是_____________。
A) 3 B) 0C) 9 D) 10
2.设ch是char类型的变量,其值为A,且有下面的表达式
ch=(ch>='A'&&ch<='Z')?(ch+32):ch
上面表达式的值是_____________。
A) A B) a C) Z D) z
3.设p1和p2是指向同一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是。
A) p1=p2; B) p2=k; C) k=*p1+*p2; D) k=*p1 * (*p2);
4.请选出可用作C语言用户标识符的一组标识符_______________。
A) float B) for C) a3_b3D) 3a
define _Abc _123 DO
int temp TEMP sizeof
5.以下叙述中不正确的是。
A) 在不同的函数中可以使用相同名字的变量
B) 函数中的形式参数是局部变量
C) 在一个函数内定义的变量只在本函数范围内有效
D) 在一个函数内的复合语句中定义的变量在本函数范围内有效
6.执行下面的程序段后
int k=3, s[2];
s[0]=k;
k= s[1]*10;
变量k中的值为_____________。
A) 10 B) 30 C) 33 D) 不定值
7. 若声明和定义了一个结构体类型的数据如下:
struct student
{ int num;
现欲输入结构体成员分量num的值,下面函数调用中正确的是。
A) scanf(“%d”,student); B) sca nf(“%d”,&student.num);
C) scanf(“%d”,&num); D) scanf(“%d”,&stu_1.num);
8. 若已定义x为int 类型变量,则下面说明指针变量p的语句_____________是正确的。
A) int p=&x ; B) int *p=x;
C) int *p=&x; D) *p=*x;
9.若程序中定义了以下函数
float myadd(float a, float b)
{ return (a+b);}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是。
A) float myadd(float, float); B) float myadd(float a,b);
C) float myadd(float a, float b); D) float myadd(float x, float y);
10.有以下程序,执行后结果是。
#include <stdio.h>
char fun(char x , char y)
{ if(x<y) return x;
return y;
}
void main( )
{ int a=’9’,b=’8’,c=’7’;
printf(“%c\n”,fun(fun(a,b),fun(b,c)));
}
A) 7B)8 C)9 D)函数调用出错
二、填空题
1.一维数组的数组名本质是一个地址,它指向数组所占连续内存空间的首地址。
2.给出能正确描述a和b同时大于0的逻辑表达式是______a>0&&b>0____________。
3.以下程序执行后的输出结果是_________________。
#include <stdio.h>
void main()
{ int a=4,b=5,c=0,d;
d=!a&&!b||!c;
printf("%d\n",d);
}
4.以下程序执行后的输出结果是_______________。
#include <stdio.h>
void main()
{ char a[10]={'1','2','3','4','5','6','7','8','9','\0'},*p;
i=8;
p=a+i;
printf("%s\n",p-2);
}
5.下面程序的功能是:输出100以内能被3整除且个位数为6的所有整数。
请在下划线处填写适当内容,使程序能正常运行。
#include <stdio.h>
void main()
{ int i;
for( i=0; 1<=100 ; i++ )
{
if( i % 3 !=0||1%10!=6 ) continue;
printf(" % d ", i );
}
printf(“\n”);
}
三、判断题
1.C语言中用于结构化程序设计的三种基本结构是顺序结构、选择结构、循环结构。
(T)
2.语句printf("%s","Hello");中s格式符的功能是输出一个字符串。
(T )
3.下列数据中,是否都是有效的C语言浮点常数:2.345e3、1.65、1.7e2.5、e3。
(F)
四、编程题
1.请写出一个函数,其功能是:求一个一维整型数组的全部元素之和。
最后在主函数中调用该函数完成全部工作。
参考答案:
一、单选题
2.B 7.D
3.B 8.C
4.C 9.B
5.D 10.A
二、填空题
1.答案:首元素地址
2.答案:a>0&&b>0
3.答案:1
4.答案:789
5.答案:i<100 ||i%10!=6 d
三、判断题
1.答案:√
2.答案:√
3.答案:×
四、编程题
1.#include <stdio.h>
#define N 10
int sumsj(int a[ ]);
void main()
{ int i,x, a[N];
for (i=0;i<N;i++)
scanf("%d",&a[i]);
x=sumsj(a);
printf("%d\n",x);
}
int sumsj(int a[N])
{int i,sum=0;
for(i=0;i<N;i++)
sum=sum+a[i];return sum;
}
或者为以下程序形式:
#include <stdio.h>
#define N 10
void sumsj(int a[ ]);
void main()
{ int i,a[N];
for (i=0;i<N;i++) scanf("%d",&a[i]);
sumsj(a);
}
void sumsj(int a[N])
{int i,sum=0;
for(i=0;i<N;i++)
sum=sum+a[i];
printf("%d\n",sum);。