郑州航空工业管理学院C语言程序设计
本试卷为郑州航空工业管理学院C语言程序设计,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、若整型变量a、b、c、d中的值依次为2、2、3、4,则条件表达式a<b?a:c
( A )
2、执行语句"for(i=1;i++<4;); "后,变量i的值是________。
( B )
3、以下叙述中错误的是________。
( D )
4、下面哪一个不是字符常量________。
( A )
5、以下叙述中错误的是________。
( C )
6、设变量已正确定义并赋值,以下正确的表达式是________。
( D )
7、在浮点数编码表示中, (1) 在机器数中不出现,是隐含的。
( A )
8、c语言中,凡未指定存储类别的局部变量的隐含存储类别是________。
( A )
9、以下变量x、y、z均为double类型且已正确赋值,不能正确表示数学式子x/(y*z)的c语言表达式是 ______ 。
( C )
10、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为______。
( B )
11、与十六进制数cd等值的十进制数是________。
( C )
12、下列属于c语言合法的字符常数是______。
( A )
13、关于程序模块化,以下叙述错误的
( C )
14、关于二进制,下列描述错误的是________。
( B )
15、以下选项中合法的字符常量是______。
( A )
16、若变量已正确定义,表达式 (j=3, j++) 的值是____。
( B )
17、程序必须在有限的步骤、有限的时间内执行完毕,指的是算法的( )特点
( B )
18、判断式5>4>3 的结果为
( D )
19、设有说明:char c; int x; double z; 则表达式c*x+z值的数据类型为____
( D )
20、在 C语言中,能代表逻辑值“真”的是()。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、三种基本结构中,能简化大量程序代码的是________。
( A )
2、以下程序的输出结果是
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);
}
( D )
3、下列描述正确的是________。
( C )
4、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( C )
5、下述语句中,_____中的if语句语法是错误的。 ( )
( 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);
}
}
( A )
7、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( 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的值为______。
( D )
9、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( D )
10、执行下列程序段后,m 的值是________. int w=2,x=3,y=4,z=5,m; m=(w
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( D )
2、已知:int a,b; 下列switch语句中,( )是正确的。
( A )
3、若变量已正确定义,对以下while循环结束条件的准确描述是________。
( D )
4、以下的 for 循环次数是多少次? for(x=0,y=0;(y!=123)|| (x<4);x++) ;
( D )
5、若有int x=1;
,执行下列程序段后,变量x的正确结果是________。
switch (x*10)
{
case 9: x+=1;
break;
case 10: x+=1;
case 11: x+=1;
default: x+=1;
}
( B )
6、执行循环语句后,i变量的值是________ i=4; while(i--); printf("%d",i);
( A )
7、以下程序的运行结果是________。
main()
{
int n;
for(n=1;n<=10;n++)
{
if(n%3==0) continue;
printf("%d",n);
}
}
( D )
8、以下程序中,while循环的循环次数是______
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
}
( C )
9、以下程序段中,能够正确地执行循环的是()。
( D )
10、以下程序段的输出结果为()。
char c[]="abc";
int i=0;
do ;while(c[i++]!='\0');printf("%d",i-1);
四、数组/指针数组 (共10题,每题1分,共计10分)
( C )
1、若有以下的说明和语句,则在执行for语句后,*(*(pt+1)+2)表示的数组元素是________。 int[3][3],*pt[3],k; for(k=0;k<3;k++) pt[k]-&t[k][0];
( D )
2、若要定义一个具有5个元素的整型数组,以下错误的定义语句是________。
( C )
3、以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{
int i;
for(i=0;i<n;i++)
{
________ printf("%d",w[i]);
}
printf("\n");
}
下列划线处应填入的语句是________。
( C )
4、以下能对一维数组a进行初始化的语句是: ( )
( C )
5、若有以下定义:int t[3][2]; 能正确表示t数组元素地址的表达式是______。
( D )
6、在下面的字符数组定义中,哪一个有语法错误 。
( D )
7、下面说明不正确的是________。
( C )
8、下列程序的运行结果是______。
main()
{
int a[6],i;
for(i=2;i<6;i++)
{
a[i]=4*(i-2*(i>3))%5;
printf("%2d",a[i]);
}
}
( B )
9、有以下程序
main()
{
int a[3][2]={0},(*ptr)[2],i,j;
for(i=0;i<2;i++)
{
ptr=a+i;
scanf("%d",ptr);
ptr++;
}
for(i=0;i<3;i++)
{
for(j=0;j<2;j++) printf("%2d",a[i][j]);
printf("\n");
}
}
若运行时输入:1 2 3<回车>,则输出结果是______。
( D )
10、下列定义数组的语句中不正确的是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( A )
2、下列选项中,能够满足"若字符串s1等于字符串s2,则执行st"要求的是________。
( A )
3、下列数据中属于"字符串常量"的是________。
( B )
4、字符串 "\\\"abc\"\\" 的长度是______。
( B )
5、下列选项中c语言中不合法的字符串常量的是________。
( D )
6、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
( D )
7、下列字符串中可以用作c标识符的是________。
( C )
8、\、/、mod、*等4个算术运算符中,优先级最低的是________。
( B )
9、在c语言中,不允许有常量的数据类型是________。
( B )
10、下列数据中属于"字符串常量"的是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、以下正确的函数定义形式是________.
( B )
2、以下关于函数的叙述中正确的是________。
( B )
3、若要求从键盘读入含有空格字符的字符串,应使用函数
( B )
4、若变量已正确定义为int型,要通过语句scanf("%d,%d,%d",&a,&b,&c); 给a赋值1、给b赋值2、给c赋值3,以下输入形式中错误的是______。(ц代表一个空格符)
( B )
5、下列程序的运行结果是________。
void fun(int*a,int*b)
{
int *k;
k=a;
a=b;
b=k;
}
main()
{
int a=3,b=6,*x=&a,*y=&b;
fun(x,y);
printf("%d%d",a,b);
}
( A )
6、当输入为"quert"时,下面程序的执行结果是
#include<stdio.h>
main()
{
char c;
c=getchar();
while(c!='') {
putchar(c);
c=getchar();
}
}
( D )
7、设函数定义如下: float f1(float a,float b)
{
return(a+b);
}
若有float x=1.1,y=2.2;
,则以下语句中正确的函数调用是________。
( C )
8、当输入数据:27 63 时,下面程序的运行结果是________。
( B )
9、以下对局部变量描述错误的是________。
( C )
10、若x为int型变量,则以下函数fun的类型为________。
fun(x)
{
printf("%d\n",x);
}
七、指针 (共10题,每题1分,共计10分)
( D )
1、若有说明语句:double*p,a; 则通过scanf语句正确给输入项读人数据的程序段是________。
( C )
2、对下述程序的判断中,正确的是________。
main()
{
char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{
printf("input the string:");
gets(s);
while(*p) putchar(*p++);
}
}
( B )
3、有语句:int a[10]; 则对指针变量p的正确定义和初始化。
( B )
4、已知char x[]="hello", y[]={ 'h','e','a','b','e' }; 则关于两个数组长度的正确描述是________。
( D )
5、在c 语言程序中,在函数内部定义的变量称为________。
( B )
6、以下叙述中不正确的是________。
( C )
7、有以下函数
int fun(char *s) {
char *t=s;
while(*t++);
return(t-s)
}
该函数的功能是______。
( C )
8、以下程序运行后,如果从键盘上输入abcdef<回车>,则输出结果为______。
#include<stdio.h>
#include<string.h>
func(char str[]) {
int num=0;
while(*(str+num)!=’\0’) num++;
return(num);
}
main()
{
char str[10],*p=str;
gets(p);
printf("%d\n",func(p));
}
( B )
9、有以下程序:
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);
printf ("%d,%d,%d\n",*p,*q,*r);
}
执行后输出结果是________。
( D )
10、int a[10]; 合法的数组元素的最小下标值为____
八、结构体 (共10题,每题1分,共计10分)
( B )
1、struct ex
{
int x ;
float y;
char z ;
}
example;
则下面的叙述中不正确的是________。
( 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 person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
( C )
4、以下对结构体类型变量的定义中,不正确的是________。
( C )
5、以下关于c语言数据类型的叙述中正确的是________。
( B )
6、c语言中的基本数据类型是________。
( A )
7、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
( C )
8、以下程序的输出结果是
#include<stdio.h>
struct st
{
int x;
int *y;
}
*p;
int dt[4]= {10,20,30,40 };
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{
p=aa;
printf("%d\n",++(p->x));
}
( D )
9、设有以下语句
typedef struct tt
{
char c;
int a[4];
}
cin;
则下面叙述中正确的是______。
( D )
10、下面定义结构变量的语句中错误的是________。
九、程序题 (共10题,每题1分,共计10分)
( A )
1、根据下面的程序及数据的输入和输出形式,程序中输入语句的正确形式应该为
main()
{
char ch1,ch2,ch3;
输入语句
printf("%c%c%c",ch1,ch2,ch3);
}
输出形式:abc 输入形式:abc
( C )
2、下面程序段的运行结果是________. int n=0; while(n++<=2); printf("%d",n);
( D )
3、以下程序的输出结果是:
main()
{
int a=12, b=12;
printf("%d,%d\n",--a,++b);
}
( C )
4、有以下程序
# define f(x) (x*x)
main()
{
int i1, i2;
i1=f(8)/f(4) ;
i2=f(4+4)/f(2+2) ;
printf("%d, %d\n",i1,i2);
}
程序运行后的输出结果是________。
( C )
5、有以下程序 int a=2;
int f(int n)
{
static int a=3;
int t=0;
if(n%2)
{
static int a=4;
t += a++;
}
else
{
static int a=5;
t += a++;
}
return t+a++;
}
main()
{
int s=a, i;
for( i=0; i<3; i++) s+=f(i);
printf("%d\n", s);
}
程序运行后的输出结果是________。
( A )
6、有以下程序:
main()
{
char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是 ______。
( C )
7、已知小写字母a的ascii码为97,大写字母a的ascii码为65,以下程序的结果是______。
main()
{
unsigned int a=31,b=66;
pfintf("%c\n,a|b);
}
( C )
8、有以下程序:
int fun(int x)
{
int P;
if(x==0||x==1)return(3);
p=x-fun(x-2);
return P;
}
main()
{
printf(”%d”,fun(7));
}
执行后的结果是________。
( B )
9、下列程序的输出结果是________。 int b=2;
int func(int *a)
{
b += *a;
return(b);
}
main()
{
int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
( A )
10、在c语言中,如果下面的变量都是int类型,则输出的结果是________。 sum=5,p=5;
p=sum++,p++,++p;
printf("%d\n",p);
相关标签:
- C语言
- 郑州航空工业管理学院