天津商业大学C语言程序设计样卷

本试卷为天津商业大学C语言程序设计样卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

C语言程序设计样卷

一、单项选择题 (共20题,每题2分,共计40分)

(  B  )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
A、9
B、10
C、11
D、8
(  B  )
2、下列定义数组的语句中,正确的是________。
A、int N=10;
B、#define N 10
int x[N]; int x[N];
C、int x[0..10];
D、int x[];
(  A  )
3、有以下程序 float f1(float n)
{
return n*n;
}
float f2(float n)
{
return 2*n;
}
main()
{
float (*p1)(float),(*p2)(float),(*t)(float), y1, y2;
p1=f1;
p2=f2;
y1=p2( p1(2.0) );
t = p1;
p1=p2;
p2 = t;
y2=p2( p1(2.0) );
printf("%3.0f, %3.0f\n",y1,y2);
}
程序运行后的输出结果是________。
A、8, 16
B、8, 8
C、16, 16
D、4, 8
(  C  )
4、有以下程序段
main()
{
int a=5,*b,**c;
c=&b;
b=&a;
……
}
程序在执行了c=&b;
b=&a;
语句后,表达式:**c的值是________。
A、变量a的地址
B、变量b中的值
C、变量a中的值
D、变量b的地址
(  D  )
5、以下选项中,能用作数据常量的是________。
A、o115
B、0118
C、1.5e1.5
D、115L
(  A  )
6、若 int x, *p; 则正确的赋值表达式是 __ 。
A、p=&x
B、p=x ;
C、*p=&x ;
D、*p=*x
(  B  )
7、有如下说明: int a[10]=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为9的表达式是________。
A、*p+9
B、*(p+8)
C、*p+=9
D、p+8
(  D  )
8、若采用双符号位判断溢出,当结果的符号位为11时,表示 (13) 。
A、结果为正溢出
B、结果正,无溢出
C、结果负溢出
D、结果为负,无溢出
(  B  )
9、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符)
A、ЦЦЦ1,2,3<回车>
B、1Ц2Ц3<回车>
C、1,ЦЦЦ2,ЦЦЦ3<回车>
D、1,2,3<回车>
(  B  )
10、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是______。
A、y=0
B、y=-1
C、y=1
D、while
(  C  )
11、下列程序的输出结果是________。
main ()
{
int a = 4, b = 5, c;
if (a < b)
{
c = a * b;
printf ("%d,%d,%d\n", b, a, c);
}
else
{
c = b / a;
printf ("%d,%d,%d\n", b, a, c);
}
}
A、4,5,12
B、20
C、5,4,20
D、12
(  D  )
12、以下语句或语句组中,能正确进行字符串赋值的是________。
A、char *sp; *sp="right!";
B、char s[10]; s="right!";
C、char s[10]; *s="right!";
D、char *sp="right!";
(  D  )
13、以下程序的输出结果是______。
main()
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if(b>=10) break;
if(b%3==1)
{
b+=3;
continue;
}
}
printf("%d\n",a);
}
A、101
B、6
C、5
D、4
(  D  )
14、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
A、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m,85,90
(  D  )
15、下列选项中用于判断ch是否是字符的表达式是________。
A、( 'a' <= ch <= 'z' ) || ( 'A' <= ch <= 'Z' )
B、( 'a' <= ch <= 'z' ) && ( 'A' <= ch <= 'Z' )
C、( ch >= 'a' && ch <= 'z' ) && ( ch >= 'A' && ch <= 'Z' )
D、( ch >= 'a' && ch <= 'z' ) || ( ch >= 'A' && ch <= 'Z' )
(  A  )
16、以下叙述中正确的是________。
A、语句 int a[8]={0};是合法的
B、语句 int a={ 0};是不合法的,遗漏了数组的大小
C、语句 char a[2]={"A","B"};是合法的,定义了一个包含两个字符的数组
D、语句 char[3];a="AB";是合法的,因为数组有三个字符空间的容量,可以保存两个字符
(  B  )
17、c语言源程序的基本单位是________。
A、过程
B、函数
C、子程序
D、标识符
(  C  )
18、以下数值中,不正确的八进制数或十六进制数是________。
A、0x16
B、016
C、-16
D、0xaaaa
(  B  )
19、c语言中,定义结构体的保留字是________。
A、union
B、struct
C、enum
D、typedef
(  D  )
20、若希望当a的值为奇数时,表达式的值为真;
a的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是________。
A、A%2==1
B、!(A%2==0)
C、A%2
D、!(A%2)

二、判断题 (共10题,每题2分,共计20分)

(   T  )
1、关系表达式的值是一个逻辑值,即"真"或"假",并且用0表示"假",用1表示"真"。 
(   T  )
2、数组元素下标的个数也称为维数,根据维数的不同,可将数组分为一维数组、二维数组、三维数组、四维数组等。() 
(   F  )
3、若变量定义为int x, y;,则x + y = 22是符合c语言语法的表达式。 
(   T  )
4、函数形参的存储单元是动态分配的。 
(   F  )
5、在c程序中,若链接过程没有发现任何错误则表示链接成功,会生成一个".obj"文件。 
(   T  )
6、宏定义是用宏名来表示一个字符串,在宏代换时以该字符串取代宏名。 
(   T  )
7、一个自定义函数中可以根据不同情况设置多条 return 语句。( ) 
(   F  )
8、选择结构可以使用嵌套形式,但是循环结构不可以使用嵌套形式。 
(   F  )
9、数组名是一个指针,它可以指向数组中的任何元素。( ) 
(   F  )
10、输入操作称为写操作,将输入流中的信息存到内存时,使用写函数。 

三、填空题 (共5题,每题4分,共计20分)

1、表示"整数x的绝对值大于3"时值为"真"的c语言表达式是 ________。
2、c语言程序的三种基本结构是顺序结构、选择结构和________。
3、局部变量的作用域是从定义的位置起,到( )结束止。
4、在c语言中,'\n'表示________。
5、函数strlen("1234\0xy")的值为:______。

四、程序分析题 (共4题,每题5分,共计20分)

1、以下程序的输出结果是________ 。
#include <stdion.h>
#define M 5
#define N M+M
main()
{
int k;
K=N*N*5;
printf("%d\n",k);
}
2、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[4]);
3、下列程序段的运行结果是________。
main()
{
int n,s=0;
for(n=1; n<=5; n++)
{
if(n%2!=0) continue;
s=s+i;
}
printf("%d\n",n);
}
4、以下程序的运行结果是________。
#include<stdio.h>
main()
{
int a=1,b=2,c;
c=max(a,b);
printf("max is %d\n",c);
}
max(int x,int y)
{
int z;
z=(x>y)?x:y;
return(z);
}

五、编程题 (共3题,每题0分,共计50分)

1、编写程序:写一个函数,求一个字符串的长度,在 main 函数中输入字符串,并输出其长度。
2、编写程序:编程实现输入5个学生的学号、计算他们的期中和期末成绩,然后计算其平均成绩,并输出成绩表
3、从键盘输入两个数,求出其最大值(要求使用函数完成求最大值,并在主函数中调用该函数)