湖北经济学院C语言程序设计期末练习
本试卷为湖北经济学院C语言程序设计期末练习,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计期末练习
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、在下列给出的表达式中,与while(e)中的(e)不等价的表达式是________。
( D )
2、若变量c为char类型,能正确判断出c为小写字母的表达式是________。
( A )
3、c语言中运算对象必须是整型的运算符是________。
( A )
4、可在c程序中用作用户标识符的一组标识符是________。
( A )
5、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是________。
( D )
6、若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( )
( D )
7、已知有变量定义: int a; char c; 用 scanf(" %d%c " ,&a,&c); 语句给 a 和 c 输入数据,使 30 存入 a ,字符‘ b ’存入 c ,则正确的输入是: 。
( D )
8、设有语句:"int a=1,b=2,*p1=&a,*p2=&b; ",则使指针p1指向变量b的赋值语句是______。
( B )
9、以下4个选项中,属于浮点数常量的是________。
( A )
10、下列选项可以正确表示字符型常量的是________。
( C )
11、运行以下程序后,如果从键盘上输入china
( B )
12、有如下程序段int *p,a=1,b=2; p=&b; a=*p+a; 执行该程序段后,a的值为______。
( C )
13、下列哪一项不是表达式
( B )
14、算法要有确定的含义,不能出现二义性指的是算法的哪个特性?
( C )
15、判断闭区间*判断实数 x 属于闭区间 [a, b ] 的表达式为 ▁▁▁▁▁
( A )
16、设a=5、b=6、c=7、d=8、m=1、n=1,执行(m=a>b)&&(n=c>d)后n的值为______。
( B )
17、在c语言中,要求运算数必须是整型或字符型的运算符是________。
( B )
18、变量的指针,其含义是指该变量的________。
( D )
19、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);
为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当 是________。(注:┗┛表示空格)
( C )
20、若有说明:int *p1,*p2,m=5,n; 以下均是正确赋值语句的选项是________。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( C )
2、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( A )
3、以下程序的输出结果是
main()
{
int a=0,i;
for(i=;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=2;
case 1: case 2:a+=3;
default:a+=5;
}
}
printf("%d\n",a);
}
( C )
4、下列说法中不正确的是________。
( A )
5、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
( 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);
}
执行后输出的结果是________。
( B )
7、c语言的switch语句中case后____
( D )
8、执行下列程序段后,m 的值是________. int w=2,x=3,y=4,z=5,m; m=(w
( C )
9、a,b 为整型变量,二者均不为 0,以下关系表达式中恒成立的是()。
( A )
10、执行下面语句后的输出为____
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、结构化程序所要求的基本结构不包括( )。
( A )
2、从循环体内某一层跳出,继续执行循环外的语句是:________。
( C )
3、以下程序段________. x=-1;
do
{
x=x*x;
}
while(!x);
( A )
4、c语言中while和do-while循环的主要区别是________。
( B )
5、已知 #int t=0; while(t=1) {...} 则以下叙述正确的是________。
( A )
6、有以下程序
main()
{
int x=0,y=0,i;
for(i=1;++i)
{
if(i%2==0)
{
x++;
continue;
}
if(i%5==0)
{
y++;
break;
}
}
printf("%d,%d",x,y);
}
程序的输出结果是________。
( A )
7、下面程序的运行结果是________。
#include <stdio.h>
void main()
{
int y=10;
do
{
y--;
}
while(--y);
printf("%d\n",y--);
}
( B )
8、有如下程序
#define N 3
#define M N+1#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( A )
9、以下程序段,while循环执行的次数是 int k=0; while(k=1) k++ ;
( B )
10、下面程序的功能是将从键盘输入的偶数写成两个素数之和。请选择填空。
#include <stdio.h>
#include <math.h>
main()
{
int a, b, c, d;
scanf("%d", &a);
for (b = 3, b <= a / 2; b += 2)
{
for (c = 2; c <= sqrt(c); c++) if (b % c == 0) break;
if (c > sqrt(b)) d = ________;
else continue;
for (c = 2; c <= sqrt(d); c++) if (d % c == 0) break;
if (c > sqrt(d)) printf("%d=%d+%d\n", a, b, d);
}
}
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、有如下定义语句:int a[]= {1,2,3,4,5 },则对语句int * p=a; 正确的描述是________。
( A )
2、设int a[10],*p=a; 数组元素a[4]的正确引用是________。
( A )
3、以下叙述中正确的是______。
( B )
4、若要定义a为3×4的二维数组,正确的定义语句是________。
( B )
5、下列程序段的运行结果是________。
#include<stdio.h>
void main()
{
char str[]="abc",*p=str;
printf("%d\n",* (p+3));
}
( A )
6、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( D )
7、以下语句或语句组中,能正确进行字符串赋值的是________。
( C )
8、下列数组的定义中,错误的是________。
( B )
9、已知:int a[2][3]; 则对数组元素的非法引用是________。
( C )
10、数组名作为实参数传递给函数时,数组名被处理为________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下关于字符串的叙述中正确的是________。
( B )
2、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( A )
3、下列选项中,能够满足"若字符串s1等于字符串s2,则执行st"要求的是________。
( D )
4、以下能正确定义字符串的语句是________。
( C )
5、在下列各项中,运算级别最低的为________。
( C )
6、下列表达式中,类型可以作为int型的是________。
( B )
7、下面选项中合法的字符常量是________。
( C )
8、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( B )
9、以下语句中,不能实现回车换行的是()。
( B )
10、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( B )
1、若有以下说明和定义
fun ( int *c )
{
}
void main ()
{
int ( *a )() =fun , *b (), w[10] , c ;
…
}
在必要的赋值之后,对 fun 函数的正确调用语句是______。
( D )
2、在下面的函数声明中,存在着语法错误的是________。
( B )
3、结构化程序设计的三种基本逻辑结构是________。
( C )
4、判断字符串s1是否大于字符串s2,应该使用________。
( D )
5、以下叙述中错误的是________。
( B )
6、以下叙述中正确的是________。
( A )
7、下列程序的输出结果是________。
int f1(int x,int y)
{
return x>y?x:y;
}
int f2(int x,int y)
{
return x>y?y:x;
}
main()
{
int a=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));
f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}
( C )
8、有关c语言的主函数描述正确的是________。
( B )
9、关于 c 语言的符号常量,以下叙述中正确的是________。
( A )
10、以下叙述中正确的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下不能将s所指字符串正确复制到t所指存储空间的是________。
( C )
2、程序中对fun函数有如下说明 void*fun(); 此说明的含义是________。
( A )
3、c语言程序的三种基本结构是顺序结构、循环结构和( )
( C )
4、以下( )不是c语言中用于结构化程序设计的三种基本结构之一。
( B )
5、下列关于串的叙述中,哪一条是正确的( )
( D )
6、有以下程序
#include <stdio.h>
void fun(int a[],int n) {
int i,t;
for(i=0;i<n/2;i++) t=a[i];
a[i]=a[n-1-i];
a[n-1-i]=t;
}
main() {
int k[10]=1,2,3,4,5,6,7,8,9,10,i;
fun(k,5);
for(i=2;i<8;i++) printf("%d",k[i]);
printf("\n");
}
程序的运行结果是______。
( B )
7、有以下程序: int*f(int*x,int*y)
{
if(*x<*y) return x;
else return y;
}
main()
{
int a=7,b=8,*p,*q,*r;
p=&a;
q=&b;
r=f(p,q);
print("% d,% d,% d\n",*p,*q,*r);
}
执行后的输出结果是 ______。
( B )
8、以下叙述中正确的是________。
( B )
9、int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是________。
( B )
10、下列关于函数之间数据传递的叙述正确的是________。
八、结构体 (共10题,每题1分,共计10分)
( C )
1、有以下程序
typedef struct
{
char name[9];
char sex;
float score [2];
} stu;
stu 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];
return a:
}
main() {
stu c=
{
"qian", 'f', 95.0, 92.0
};
stu d=f(c);
printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
( D )
2、有以下程序
#include <stdio.h>
struct tt
{
int x;
struct tt*y;
}
*p;
struct tt a[4]={20,a+1,15,a+2,30,a+3,17,a};
main()
{
int i;
p=a;
for(i=1;i<=2,i++)
{
printf("%d,",p->x);
p=p->y;
}
}
程序的运行结果是________。
( A )
3、有以程序
#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 )
4、有以下程序
typedef struct
{
int b,p;
}
a;
void f(a c) /* 注意:c是结构变量名 */
{
int j;
c.b+=1;
c.p+=2;
}
main()
{
int i;
a a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是______。
( C )
5、以下scanf函数调用语句中不正确的是__。
struct pupil
{
char name[20];
int age;
int sex;
}
pup[5], *p=pup;
( D )
6、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( A )
7、设有结构体的定义如下:
struct data
{
char c1;
char c2;
}
;
则sizeof(struct data)的值是________。
( D )
8、下面定义结构变量的语句中错误的是________。
( C )
9、下面哪个不是关键字?
( A )
10、以下关于 c 语言数据类型使用的叙述中错误的是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、有以下程序
#include <stdio.h>
main()
{
int a = 1, b = 0;
if (--a)
b++;
else if (a == 0)
b += 2;
else
b += 3;
printf("%d\n", b);
}
程序运行后的输出结果是________。
( C )
2、若有以下程序段: int r=8; print("%d\n",r>>1); 输出结果是________。
( A )
3、有下列程序:
main()
{
int x=0;
int y=0;
while(x<7 &&++v)
{
y--;
x++;
}
printf("%d,%d",y,x);
}
程序的输出结果是________。
( B )
4、有如下程序
main( )
{
int n=9;
while(n>6)
{
n--;
printf("%d",n);
}
}
该程序段的输出结果是________。
( B )
5、有以下程序
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10}, *p=&a[3], *q=p+2;
printf("%d\n", *p + *q);
}
程序运行后的输出结果是________。
( D )
6、以下不能正确表示代数式2ad/cd的c语言表达式是________。
( A )
7、以下程序的运行结果是________。
main() {
int a[5],k;
for(k=0;k<5;k++)
a[k]=10*k;
printf("%d", a[k-1]);
}
( A )
8、若运行时给变量x输入12,则以下程序的运行结果是
main()
{
int x,y;
scanf("%d",&x);
y=x>12 ? x+10 : x-12;
printf("%d\n",y);
}
( D )
9、设x,y均为int型变量,且x=10,y=3,则printf("%d,%d\n",x-,-y);
语句的输出结果是______。
( B )
10、以下程序的输出结果是_______。
#define N 10
void fun(int a[],int n,int m)
{
int i;
for(i=m;i>=n;i--)A[i+1]=a[i];
}
main( )
{
int i,a[N]={4,5,6,7,8,9,10};
fun(a,2,6);
for(i=0;i<4;i++)printf("%d",a[i]);
}
相关标签:
- C语言
- 湖北经济学院
- 期末练习