五邑大学历年C语言程序设计期末复习题
本试卷为五邑大学历年C语言程序设计期末复习题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计期末复习题
一、理论基础 (共20题,每题1分,共计10分)
( D )
1、下列叙述中正确的是________。
( D )
2、下列选项中不会引起二义性的宏定义是________。
( A )
3、执行语句"for(i=1;i++<4;); "后,变量i的值是________。
( B )
4、将二进制数101101101111转换成十六进制数是________。
( B )
5、将十进制数0.625转换成二进制数是________。
( A )
6、a,b均为整数,且b!=0,则表达式a/b*b+a%b的值是________。
( A )
7、以下不合法的字符常量是________。
( C )
8、若以下选项中的变量已正确定义,则正确的赋值语句是________。
( C )
9、若有说明 char c[7]= { 's','t','r','i','n','g' } ; 则对元素的非法引用是 __________.
( C )
10、下列属于不合法的c语言整型常量的选项是________。
( A )
11、59,73,83,94,( )
( B )
12、若有定义int a=2; 则执行完语句a/=a*a; 后,a的值是________。
( C )
13、流程图里面的开始和结束用( )表示。
( B )
14、数值型数据包括( )两种。
( C )
15、下列叙述中不正确的是________。
( A )
16、设有声明语句:char a='\72'; 则变量a________。
( C )
17、执行以下语句后a 的值为________。 int a,b,c; a=b=c=1; ++a||++b&&++c;
( C )
18、以下不能定义为用户标识符的是________。
( B )
19、若有以下定义:char s='\092'; 则该语句________。
( B )
20、已有定义int k=2; int *p1,*p2; 且p1,p2 均指向变量k,下面不能正确执行的赋值语句是________。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、与 y=(x>0?1:x<0?-1:0); 的功能相同的if语句是________。
( B )
2、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( D )
3、c语言对嵌套的if语句的规定是:else总是与 配对。
( C )
4、有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是________。
( C )
5、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( C )
6、下列程序的输出结果是________。
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);
}
}
( C )
7、c语言中下面哪个不是条件语句?
( D )
8、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( C )
9、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( D )
10、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
三、循环结构 (共10题,每题1分,共计10分)
( A )
1、有以下程序:
main()
{
int c=0,k;
for(k=1;k<3;k++)
switch(k)
{
default:c+=k;
case2:c++;
break;
case4:c+=2;
break;
}
printf("%d\n",c);
}
程序运行后的输出结果是________。
( B )
2、若变量已正确定义,有以下程序段 i—o;
do printf("%d,",i);
while(i++);
printf("%d",i) 其输出结果是________。
( B )
3、以下描述错误的是_________。
( D )
4、若a、b为int型变量,则执行以下语句后a的值为( )
a=1;
b=10;
do
{
b-=a;
a++;
}
while(b-->0);
( C )
5、有以下程序:
main() {
int k=4,n=0;
for(; n<k;) {
n++;
if(n%3!=o) continue;
k--;
}
printf("%d,%d\n",k,n);
}
程序运行后的输出结果是________。
( D )
6、有以下程序:
#include<stdio.h>
main()
{
int x=8;
for(;x>0;x--)
{
if(x%3)
{
printf("%d,",x--);
continue;
}
printf("%d,",--x);
}
}
程序的运行结果是______。
( C )
7、运行下面程序时,从键盘输入字母h,则输出结果是
#include<stdio.h>
main()
{
char ch;
ch=getchar();
switch(ch) {
case ’h’: printf("hello!\n");
case ’g’: printf("good morning!\n");
default : printf("bye_bye!\n");
}
}
( A )
8、以下选项中哪些描述是不正确的?
( A )
9、下列c语言程序段中关于while循环体正确的说法是inti=1;
while(5)
{
i++;
if(i>3)break;
}
( C )
10、以下是死循环的程序段是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、若有定义"int b[8],*p=b;",则p+6表示( )。
( D )
2、设有如下定义 : char aa[2][20]={ "abcd", "abcd" }; 则以下说法中错误的是 __________.
( B )
3、以下能对二维数组a进行正确初始化的语句是________。
( A )
4、下列定义数组的语句中,正确的是______。
( D )
5、二维数组a的成员是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放a至少需要 (44) 个字节。
( B )
6、下列二维数组初始化语句中,正确且与语句int a[][3]= { 1,2,3,4,5 }等价的是________。
( B )
7、以下不正确的定义语句是________。
( C )
8、下面程序的输出结果是
#include<stdio.h>
main()
{
int a[]=1,2,3,4,5,6,7,8,9,0,*p;
p=a;
printf("%d\n",*p+9);
}
( C )
9、有以下程序
#include <string.h>
void f(char p[][10],int n) /* 字符串从小到大排序 */
{
char t[10];
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmp(p[i],p[j])>0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
main()
{
char p[5][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
( A )
10、有说明语句int a[4][5]; 则a[2]+3表示__。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述中不正确的是________。
( A )
2、下列哪个是c语言的有效标识符
( D )
3、下列关于boolean类型的叙述中,正确的是________。
( B )
4、下列选项中,值为1的表达式是________。
( D )
5、下列字符串中可以用作c标识符的是________。
( C )
6、下列选项中,表示字符串末尾的结束标志是________。
( D )
7、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
( A )
8、以下选项中关于 c 语言常量的叙述错误的是________。
( D )
9、判断字符串a 和b 是否相等,应当使用。
( A )
10、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
六、函数/函数指针 (共10题,每题1分,共计10分)
( A )
1、是构成c语言程序的基本单位。
( B )
2、在 c 语言程序中,以下描述正确的是______。
( C )
3、若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是________。
( C )
4、有以下函数
int fun(char *s) {
char *t=s;
while(*t++);
return(t-s)
}
该函数的功能是______。
( B )
5、以下程序的运行结果是________。
#include <stdio.h>
#define MIN(x,y) (x)<(y) ? (x):(y)
main() {
int i=10,j=15,k;
k=10*MIN(i,j);
printf("%d\n",k);
}
( C )
6、当输入数据:27 63 时,下面程序的运行结果是________。
( C )
7、下列选项中,关于main()函数叙述不正确的是________。
( D )
8、以下错误的描述是:函数调用可以________。
( C )
9、以下函数的返回类型是______。 fff(float x)
{
return 5.86;
}
( C )
10、语句int (*ptr)(); 的含义是______。
七、指针 (共10题,每题1分,共计10分)
( A )
1、已定义以下函数 fun(char *p2, char *p1)
{
while((*p2=*p1)!='\0')
{
p1++;
p2++;
}
}
函数的功能是________。
( B )
2、有如下程序 int a[10]={ 1,2,3,4,5,6,7,8,9,10 },*p=a; 则数值为9的表达式是________。
( D )
3、vb的3种结构化程序设计的3种基本结构是________。
( B )
4、若有以下说明和定义 fun(int*c)
{
...
}
main()
{
int(*a)()=fun,(*b)(),w[10],c;
}
在必要的赋值之后,对fun()函数的正确调用语句是______。
( A )
5、有以下程序
#include<stdio.h>
void fun(int n,int*s) {
int f;
if(n==1)*s=n+1;
else fun(n-1,&f);
*s=f;
}
main() {
int x=0;
fun(4,&x);
printf("%d\n",x);
}
程序运行后的输出结果是______。
( B )
6、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d",a[k][k]);
( D )
7、以下能正确定义数组并正确赋初值的选项是______。
( A )
8、下列关于strstr()函数的描述,错误的是________。
( C )
9、以下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。#define N 10
void arrin(int x[N])
{
int i=0;
while(i<N)scanf("%d",______);
}
在下划线处应填入的是______。
( A )
10、下列字符数组长度为5的是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
( B )
2、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( B )
3、有以下程序
#include <stdio.h>
struct ord
{
int x ,y;
}
dt[2]= {1,2,3,4 };
main()
{
struct ord *p=dt;
printf("%d,",++p->x);
printf("%d\n",++p->y);
}
程序的运行结果是________。
( C )
4、设有以下说明语句:
typedef struct stu
{
int a;
float b;
} stutype;
则下面叙述中错误的是________。
( B )
5、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( B )
6、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
( B )
7、定义file *fp; 则文件指针fp 指向的是________。
( D )
8、以下叙述中正确的是________。
( A )
9、以下叙述中正确的是________。
( D )
10、以下对结构体变量stu1中成员age的非法引用是________。
struct student
{
char name[10];
int age ;
}
stu1 ,*p;
p=&stu1;
九、程序题 (共10题,每题1分,共计10分)
( D )
1、以下程序的输出结果是________。 char str[15]="hello!"; printf("%d\n",strlen(str));
( D )
2、阅读下面的程序
main()
{
int i,j;
char ch;
scanf("%d%c%f",&i,&ch,&j);
printf("%d%2c%7.2f",i,ch,j);
}
如果从键盘上输入 123a123x.12<回车> 则程序的运行结果是________。
( B )
3、下面程序段的运行结果是 ____________.
int n=0;
while (n++<=2) printf("%d",n);
( C )
4、以下程序的输出结果是 ____________.
#include <stdio.h>
fun(int x,int y,int z)
{
z=x*x+y*y;
}
void main()
{
int a=31;
fun(5,2,a);
printf("%d",a);
}
( D )
5、有如下程序
main()
{
int y=3,x=3,z=1;
printf("%d%d\n",(++x,y++),z+2);
}
运行该程序的输出结果是______。
( B )
6、以下程序的输出结果是
fun(int x, int y) return(x+y);
main()
{
int a=1, b=2, c=3, sum;
sum=fun((a++, b++, a+b), c++);
printf("%d", sum);
}
( C )
7、下面程序段的输出为
#include"stdio.h"
main()
{
printf("%d\n",12<<2);
}
( C )
8、设有如下程序段:
union
{
int i;
char c;
} a;
a.i=12;
a.c='a';
printf("\n%d",a.i);
这段程序执行后,屏幕输出的结果是………………………………………( )
( D )
9、下面程序的输出结果是_______。
main( )
{
extern int m;
m+=2;
f( );
printf("%d\n",m);
}
int m=7;
f( )
{
printf("%d&",m*m);
m+=m;
}
( D )
10、如下程序,输入错误的为:
void main()
{
int a;
int b;
scanf("%d%d",&a,&b);
printf("%d %d",a,b);
}
相关标签:
- C语言
- 五邑大学
- 期末复习题