大连交通大学往年C语言期末复习题
本试卷为大连交通大学往年C语言期末复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言期末复习题
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、两个或两个以上模块之间联系的紧密程度称为( )。
( B )
2、以下选项中,合法的一组c语言数值常量是________。
( D )
3、表达式3.6-5/2+1.2+5%2的值是________。
( D )
4、设有定义:int n=0,*p=&n,**q=&p; 则以下选项中,正确的赋值语句是________。
( A )
5、以下不能正确赋值的是______。
( B )
6、有如下程序段 int *p, a=10, b=1; p=&a ; a=*p+b; 执行该程序段后, a 的值为 。
( D )
7、以下叙述中不正确的是________。
( D )
8、设int a=0; 错误的语句是________。
( D )
9、整型变量x和y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
( D )
10、无符号二进制整数10111转换成十进制整数,其值是________。
( C )
11、以下选项中属于c语言数据类型的是________。
( B )
12、设i是int型变量,f是float型变量,用下面的语句给这2个变量输入值。为了将,100和765.12分别赋给i和f,则正确的输入为______。 scanf("i=%d,f=%f",&i,&f);
( A )
13、设变量 m 为 float 类型,变量 n 为 int 类型,则以下能实现将 m 中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是________。
( D )
14、可以作为自定义标识符的是________。
( D )
15、一个5位的二进制数能够表示的最大值为?
( C )
16、定义float a=8.735,那么printf("%7.2f",a); 的输出结果为
( C )
17、若变量a,b,t 已正确定义,要将a 和b 中的数进行交换,以下选项中不正确的语句是________。
( B )
18、已有定义: int x=3,y=4,z=5; 则表达式 !(x+y)+z-1&&y+z/2 的值是________。
( C )
19、下列不正确的转义字符是________。
( C )
20、以下选项中合法的用户标识符是________。
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、设a、b、e、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值是________。
( C )
2、有以下程序
main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf("%c",&k);
switch(k)
{
case ‘0’: printf("another\n");
case ‘1’: printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是________。
( C )
3、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
( A )
4、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
( A )
5、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
( B )
6、有以下程序
#include <stdio.h>
main ()
{
int a = 5, b = 4, c = 3, d = 2;
if (a > b > c)
printf ("%d\n", d);
else if ((c - 1 >= d) == 1)
printf ("%d\n", d + 1);
else
printf ("%d\n", d + 2);
}
执行后输出的结果是________。
( D )
7、以下叙述中正确的是________。
( D )
8、在c 的if 语句中,可用作条件的表达式是________。
( A )
9、main()
{int x=1,a=0,b=0;
switch (x)
{ case 0: b++;
case 1: a++;
case 2: a++;b++;}
printf("a=%d,b=%d",a,b);}
该程序的输出结果是( )
( A )
10、执行下面语句后的输出为____
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、下述 for 循环语句 。
int i,k;
for(i=0,k=-1;k=1;i++,k++)
printf("* * * *");
( D )
2、下面程序的输出结果是 ____________.
main( )
{
int i,k=0, a=0, b=0;
for(i=1;i<=4;i++)
{
k++;
if (k%2==0)
{
a=a+k;
continue;
}
b=b+k;
a=a+k;
}
printf("k=%d a=%d b=%d\n",k,a,b);
}
( B )
3、c语言的跳转语句中,对于break和continue说法正确的是________。
( C )
4、下列关于break语句的描述,不正确的是________。
( A )
5、结构化程序设计思想的核心是要求程序只由顺序、循环和______三种结构组成。
( D )
6、程序设计语言中________。
( D )
7、下面有关for循环的正确描述是________。
( A )
8、下列c语言程序段中关于while循环体正确的说法是inti=1;
while(5)
{
i++;
if(i>3)break;
}
( A )
9、设有以下代码其中,循环体 a 与循环体 b 相同,以下叙述正确的是________。
( D )
10、以下程序段的输出结果为()。
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
四、数组/指针数组 (共10题,每题1分,共计10分)
( A )
1、若有定义:"int a[2][3];",则对a数组的第i行第j列元素的正确引用为( )。
( D )
2、若有如下定义,则________是对数组元素的正确的引用 int a[10], *p ; p=a;
( C )
3、设有数组定义:char array[]="student"; 则数组所占的存贮空间为________。
( A )
4、下列描述中正确的是________。
( D )
5、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
( D )
6、设有以下定义: int a[3][3]= { 1,2,3,4,5,6,7,8,9 }; int(*ptr)[3]=a; 则下列能正确表示数组元素a[1][2]的表达式是______。
( C )
7、设有数据定义语句"int a[200]; ",下列数组元素引用中下标不越界的是________。
( C )
8、下列程序段的功能是________。计算数组x中相邻两个元素的和,依次存放到 a 数组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是________。int i;
int a[9], x[10];
for(i = 0; i < 10; i++)
{
scanf("%d", &x[i]);
}
for( (1) ; i < 10; i++ )
{
/* 此处待填空(1) */ a[i-1] = x[i] + (2) ;
/* 此处待填空(2) */
}
for(i = 0; i < 9; i++)
{
printf("%d ",a[i]);
}
printf("\n");
( B )
9、二维数组a有m行n列,则在a[i][j]之前的元素个数为________。
( D )
10、若有以下的定义:int t[3][2]; 能正确表示t数组元素地址的表达式是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
( D )
2、以下选项中能表示合法常量的是________。
( B )
3、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( C )
4、下面各语句行中,能正确进行字符串赋值操作的语句是______。
( D )
5、下列字符串中,正确的c标识符是________。
( B )
6、下列关于串的叙述中,哪一条是正确的( )
( B )
7、下列选项中,值为1的表达式是________。
( D )
8、以下选项中,合法的 c 语言常量是________。
( C )
9、判断两个字符串是否相等,正确的表达方式是________。
( D )
10、在宏定义#define PI 3.14159中,用宏名代替一个________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( A )
1、在c语言中,函数的数据类型是指( )
( D )
2、下列函数原型声明中错误的是________。
( C )
3、下列说法不正确的是________。
( A )
4、下列不属于c语言关键字的选项是________。
( B )
5、有以下程序: fun(int x,int y)
{
static int m=0, i=2;
i+=m+1;
m=i+x+y;
return m;
}
main()
{
int j=1,m=1,k;
k=fun(j,m);
printf("%d,"k);
k=fun(j,m);
printf("%d\n",k);
}
执行后的输出结果是________。
( C )
6、以下关于宏的叙述中正确的是______。
( D )
7、c 程序的执行过程在下列说法中,▁▁▁▁▁ 是正确的。
( A )
8、以下叙述中正确的是________。
( B )
9、以下程序的输出结果为________。
main()
{
int a=1,b=2,c=3,d=4,e=5;
printf("%d\n",func((a+b,b+c,c+a),(d+e)));
}
int func(int x,int y)
{
return(x+y);
}
( D )
10、函数调用:strcat(strcpy(str1,str2),str3)的功能是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、c语言规定,函数返回值的类型是由( )决定的。
( B )
2、若有以下定义 int x[10], *pt=x; 则对x数组元素的正确引用是________。
( C )
3、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( B )
4、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
( C )
5、下面程序段的运行结果是________。
char a[]="abcdefgh"; char *p=a; p+=3; printf("%d\n",strlen(strcpy(p,"abcd")));
( C )
6、以下正确的程序段是________。
( D )
7、下面说明不正确的是________。
( C )
8、以下说法错误的是________。
( B )
9、以下叙述中错误的是________。
( B )
10、字符串指针变量中存入的是________。
八、结构体 (共10题,每题1分,共计10分)
( A )
1、有以下程序 struc stu
{
char name[10];
int num;
};
void f1(struct stu c)
{
struct stu b={"lisiguo",2042};
c=b;
}
void f2(struct stu *c)
{
struct stu b={"sundan",2044} ;
*c=b;
}
main( )
{
struct stu a={"yangsan",2041},b={"wangyin",2043} ;
f1(a);
f2(&b);
printf("%d %d\n",a.num,b.num);
}
执行后的输出结果是________。
( A )
2、有以程序
#include <stdio.h>
#include <string.h>
typedef struct
{
char name[9];
char sex;
float score[2];
} stu;
void f( stu a)
{
stu b={"zhao" ,’m’,85.0,90.0} ;
int i;
strcpy(a.name,b.name);
a.sex=b.sex;
for(i=0;i<2;i++) a.score[i]=b.score[i];
}
main()
{
stu c={"qian",’p’,95.0,92.0};
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
}
程序的运行结果是________。
( D )
3、若有以下说明语句:
struct student
{
int num;
char name[ ];
float score;
} stu;
则下面的叙述不正确的是: ( )
( A )
4、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
( A )
5、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
( C )
6、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( C )
7、下面说法正确的是________。
( A )
8、以下叙述中正确的是________。
( B )
9、相同结构体类型的变量之间,可以________。
( B )
10、有以下程序
struct stu
{
char num[10];
float score[3];
};
main( )
{
struct stu s[3]={{"20021",90,95,85},{"20022",95,80,75},{"20023",100,95,90}},*p;
int i;
float sum=0;
p=s;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.2f\n",sum);
}
程序运行后的输出结果是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、下面程序的运行结果是________。
main( )
{
int s=0,i=1;
while (s<=10)
{
s=s+i*i;
i++;
}
printf("%d",--i);
}
( A )
2、若有以下定义和语句 char sl[10]= "abcd!", *s2="n123\\";
printf("%d %d\n", strlen(s1),strlen(s2));
则输出结果是________。
( A )
3、有以下程序
main( )
{
char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"} ;
printf("%d\n",strlen(p[4]));
}
执行后输出结果是________。
( B )
4、以下程序的输出结果是
main()
{
char cf[3][5]={"aaaa","bbb","cc"};
printf("\"%s\"\n",ch[1]);
}
( B )
5、请读程序 :
#include <stdio.h>
f(int b[ ], int n)
{
int i, r=1;
for(i=0; i<=n; i++) r=r*b[i];
return r;
}
void main()
{
int x, a[]={2,3,4,5,6,7,8,9} ;
x=f(a, 3);
printf("%d\n",x);
}
上面程序的输出结果是 __________.
( D )
6、设x和y均为int型变量,且x=10,y=3,则以下语句的输出结果是________。 printf(" %d,%d\n",x --,--y);
( B )
7、执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是________。
main()
{
char s[100];
int c, i;
scanf("%c",&c);
scanf("%d",&i);
scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
( C )
8、以下程序的输出结果是______。
#include <stdio.h>
#include <math.h>
main()
{
int a=1,b=4,c=2;
float x=10.5,y=4.0,z;
z=(a+b)/c+sqrt((double)y)*1.2/c+x;
printf("%f\n",z);
}
( A )
9、以下程序的输出结果是______。
main()
{
int k=4,m=1,p;
p=func(k,m);
printf("%d,",p);
p=func(k,m);
printf("%d\n",p);
}
func(inta,int b)
{
static int m=0,i=2;
i+=m+1;
m=i+a+b;
return(m);
}
( A )
10、以下程序的输出结果是______。
main( )
{
union
{
char i[2];
int k;
}
r;
r.i[0]=2;
r.i[1]=0;
printf("%d\n",r.k);
}
相关标签:
- C语言
- 大连交通大学
- 期末复习题