郑州航空工业管理学院2022年计算机C语言专升本模拟考试
本试卷为郑州航空工业管理学院2022年计算机C语言专升本模拟考试,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言专升本模拟考试
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、设"int x=2,y=1; ",则表达式(!x || y--)的值i是________。
( C )
2、设x,y,z,s均为int型变量,且初值均为1,则执行语句s=++x||++y&&++z后,则s的值为:
( D )
3、若有说明:int n=2,*p=&n,*q=p,则以下非法的赋值语句是: ( )
( C )
4、若 x=0 , y=3 , z=3, 以下表达式值为 0 的是________。
( C )
5、在定义 int a[5][4]; 之后 , 对 a 的引用正确的是__________。
( D )
6、以下选项中,当x为大于1的奇数时,值为0的表达式是________。
( A )
7、表示一条指令的存储单元的符号地址称________。
( A )
8、若有定义语句:int a=3,b=2,c=1; 以下选项中错误的赋值表达式是______。
( C )
9、下列各项关于变量的描述中正确的是________。
( A )
10、下列( )是合法标识符。
( B )
11、设变量x为float型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是______。
( B )
12、下列形式的常数中,不符合c语言语法规范的是______。
( C )
13、用高级程序设计语言编写的程序称为________。
( B )
14、在c中,合法的字符常量是 ______。
( A )
15、设有说明语句:char a='\123'; 则变量a______。
( A )
16、以下标识符中,不合法的是________。
( C )
17、已知int x=10,y=20,z=30; 以下语句:if(x<y) z=x; x=y; y=z; 执行后x,y,z的值是________。
( B )
18、设有以下程序段:int y; y=rand()%30+1; 则变量 y 的取值范围是________。
( B )
19、执行以下程序段后,输出结果和a的值是________。 int a=10; printf("%d",a++);
( C )
20、下列变量中合法的是
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、设变量a、b、e、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d) y=0; else y=1; 该语句所表示的含义是________。
( B )
2、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( C )
3、当从键盘上输入字符"12134211"下面程序的 输出结果是________。
main( )
{
char s;
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{
scanf("%c",&s);
switch(s)
{
default: v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++;
}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
( C )
4、有以下程序
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<回车>,程序执行后的输出结果是________。
( A )
5、以下程序的输出结果是
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 )
6、下列说法中不正确的是________。
( B )
7、下列表达式为关系表达式的为_________。(其中a为一整型变量)
( A )
8、若x和y是程序中的两个整型变量,则下列if语句中正确的是________。
( A )
9、下列程序的运行结果是________。
main()
{
int a=-5,b=1,c=1;
int x=0,y=2,z=0;
if(c>0)x=x+ y;
if(a<=0)
{
if(b>0) if(c<=0)y=x-y;
}
else if(c>0)y=x-y;
else z=y;
printf("%d,%d,%d\n",x,y,z);
}
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下列标识符不是关键字的是________。
( C )
2、若有以下程序段,w和k都是整型变量:
w=k;
LB:if(w==0)
goto LE;
w--;
printf("*") goto LB;
LE;
则不能与上面程序段等价的循环语句是________。
( A )
3、设 i 和 x 都是 int 类型,则 for 循环语句 。 for(i=0,x=0;i<=9&&x!=876;i++) scanf("%d",&x);
( C )
4、有以下程序
main() {
int i;
for(i=0;i<3;i++)
switch(i) {
case 0: prinft("%d",i);
case 2: prinft("%d",i);
default:prinft("%d",i);
}
}
程序运行后的输出结果是________。
( A )
5、有以下程序:
#include <stdio.h>
main()
{
int a=1,b=2;
for(;a<12;a++)
{
b+=a*2;
a+=3;
}
printf("%d,%d\n",b,a);
}
程序运行后的输出结果是________。
( B )
6、有以下程序
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
程序执行后的输出结果是________。
( B )
7、若变量已正确定义:for(x=0,y=0;(y!=99&&x<4);x++) 则以上 for 循环()
( D )
8、以下叙述中正确的是________。
( D )
9、以下程序中,while循环的循环次数是______
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5) break;
i++;
}
}
( A )
10、执行以下循环语句时,下列说法正确的是________。x = -1;
do
{
x = x * x;
}
while (x == 0);
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下程序调用findmax函数返回数组中的最大值
findmax(int *a,int n)
{
int *p,*s;
for(p=a,s=a; p-a<n; p++) if ( ) s=p;
return(*s);
}
main()
{
int x[5]={12,21,13,6,18};
printf("%d\n",findmax(x,5));
}
在下划线处应填入的是________。
( D )
2、以下函数findmax拟实现在数组中查找最大值并作为函数值返回, 但程序中有错导致不能实现预定功能
#define MIN -2147463647
int findmax(int x[],int n)
{
int i,max;
for(i=0;i<n;i++)
{
max=MIN;
if(max<x[i]) max=x[i];
}
return max;
}
造成错误的原因是________。
( D )
3、设有如下定义 : char aa[2][20]={ "abcd", "abcd" }; 则以下说法中错误的是 __________.
( D )
4、已知3个字符为:a、z和8,按它们的ascii码值升序排序,结果是________。
( B )
5、有如下定义语句:int a[]= {1,2,3,4,5 },则对语句int * p=a; 正确的描述是________。
( C )
6、以下定义数组中错误的是________。
( B )
7、下列程序段的运行结果是________。
#include<stdio.h>
void main()
{
char str[]="abc",*p=str;
printf("%d\n",* (p+3));
}
( B )
8、下面程序的运行结果是
#include<stdio.h>
main()
{
char a[]="morning",t;
int i,j=0;
for(i=1;i<7;i++) {
if(a[j]<a[i]) {
j=i;
t=a[j];
a[j]=a[7];
a[7]=a[j];
}
}
printf("%s", a);
}
( C )
9、阅读下列程序段: char s[18] = "a book!"; printf("%.4s\n", s);
其输出结果为________。
( D )
10、若char a[10]; 已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句s; 则以下选项中正确的是________。
( C )
2、在下列各项中,运算级别最低的为________。
( D )
3、表达式x+1>x是________。
( D )
4、以下正确的字符串常量是________。
( C )
5、请读程序片段(字符串内没有空格字符):printf("%d\n",strlen("ats\n012\1\\") );
上面程序片段的输出结果是______。
( C )
6、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
( C )
7、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( A )
8、以下正确的字符串常量是________。
( C )
9、判断两个字符串是否相等,正确的表达方式是________。
( A )
10、下面不能正确进行字符串赋值操作的语句是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、以下叙述中不正确的是________。
( B )
2、下面函数的功能是______。 sss ( char *s , char *t )
{
while (( *s ) && ( *t ) && ( *t++== *s++ )) ;
return ( *s-*t ) ;
}
( D )
3、在函数声明中,下面哪项是不必要的________。
( C )
4、以下叙述中,不正确的是________。
( B )
5、若定义a=3,b=4,执行printf("%d, %d",(a,b),(b,a)); 的输出结果为________。
( B )
6、以下程序中函数f的功能是:当flag为1时,进行由小到大排序;
当flag为0时,进行由大到小排序。
void f (int b[],int n,int flag)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(flag?b[i]>b[j]:b[i]<b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
main()
{
int a[10]={5,4,3,2,1,6,7,8,9,10}, i;
f(&a[2],5,0);
f(a,5,1);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
( A )
7、以下关于字符串的叙述中正确的是________。
( C )
8、若x为int型变量,则以下函数fun的类型为________。
fun(x)
{
printf("%d\n",x);
}
( C )
9、以下叙述中正确的是________。
( C )
10、以下叙述中正确的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、对二维数组的正确定义是________。
( A )
2、若有以下的定义: int a[ ]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }, *p=a; 则值为 3 的表式是______。
( D )
3、有如下程序
#include<stdio.h>
void main()
{
char ch[80]="123abcdefg*&";
int j;
long s=0;
puts(ch);
for(j=0;ch[j]>'\0';j++) if(ch[j]>='a'&&ch[j]<='z') ch[j]=ch[j]+'e'-'e';
puts(ch);
}
该程序的功能是 __________.
( A )
4、下列对字符数组进行初始化的语句中,______ 是正确的。
( A )
5、关于函数的返回值,正确的是________。
( C )
6、若有下面的程序片段:
int[12]={0},*p[3],**pp,i;
for(i=0;i<3;i) p[i]=&a[i*4];
pp=p
则对数组元素的错误引用是________。
( C )
7、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为________。
( A )
8、若有 int a[10], *p=a; ,且 a 数组已赋值,则与 a[4]不等价的表达式为________。
( C )
9、语句int (*ptr)(); 的含义是______。
( A )
10、以下叙述中正确的是()。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、struct ex
{
int x ;
float y;
char z ;
}
example;
则下面的叙述中不正确的是________。
( 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;
}
}
程序的运行结果是________。
( D )
3、下列选项中属于c语言构造类型的是________。
( A )
4、对以下定义的表述中,正确的是________
struct node
{
int num;
char name[10];
}
stud;
( C )
5、以下程序的输出结果是
#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));
}
( A )
6、有以下程序
struct s
{
int n;
int a[20];
}
;
void f(int *a, int n)
{
int i;
for(i=0;i<n-1;i++) a[i]+=i;
}
main()
{
int i;
struct s s={10,
{
2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++) printf("%d,",s.a[i]);
}
程序运行后的输出结果是______。
( D )
7、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( D )
8、设有以下说明语句:
typedef struct stu
{
int a;
float b;
}
stutype;
则下面叙述中错误的是________。
( A )
9、以下关于 c 语言数据类型使用的叙述中错误的是________。
( 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分)
( D )
1、若有定义和语句: int **pp,*p, a=20, b=10;
pp=8p;
p=&a;
p=&b;
printf("%d,%d\n",*p,**pp);
则输出结果是________。
( C )
2、两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是________。 if(x++>5) printf("%d",x); else printf("%d\n",x --);
( C )
3、有以下程序:
void swap(char*x,char*y)
{
char t;
t=*x;
*x=*y;
*y=t;
}
main()
{
char*s1="abe",*s2="123"; swap(s1,s2);
printf("%s,%s\n",s1,s2);
}
程序执行后的输出结果是________。
( A )
4、以下程序片段( ) 。
main ( )
{
int x=0,y=0,z=0;
if (x=y+z) printf("***");
else printf("###");
}
( A )
5、有以下程序
#define f(x) x*x
main( )
{
int i;
i=f(4+4)/f(2+2);
printf("%d\n",i);
}
执行后输出结果是________。
( C )
6、下列程序的输出结果是 __________.
#include <stdio.h>
void main()
{
char b[]="abcdefg";
char p=0;
while(p<7) putchar(b[p++]);
putchar('\n');
}
( B )
7、设a=2,b=3,c=4,d=5,下列表达式的值是________。 a > b and c < = d or 2 * a > c
( C )
8、有以下程序
main()
{
int m=3,n=4,x;
x=-m++;
x=x+8/++n;
printf("%d\n",x);
}
程序运行后的输出结果是______。
( C )
9、以下程序段的输出结果是________。 int a=1234; float b=123.456; double c=12345.54321; printf("%2d,%2.1f,%2.1f",a,b,c);
( C )
10、有以下程序
main( )
{
int m=0256,n=256;
printf("%o %o\n",m,n);
}
程序运行后的输出结果是________。
相关标签:
- C语言
- 郑州航空工业管理学院
- 专升本模拟考试