中国刑事警察学院2022年计算机C语言模拟考试
本试卷为中国刑事警察学院2022年计算机C语言模拟考试,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
计算机C语言模拟考试
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、下列能正确进行字符串赋值的是________。
( A )
2、若变量已正确定义,在语句"if(w)printf("%d\n",k);"中,以下不可替代w的是________。
( A )
3、在c语言中,存储一个字符型、整型、双精度实型变量所需的字节数是________。
( B )
4、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
( B )
5、若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0) s=a; for(b=1;b<=c;b++) s=s+1; 则与上述程序段功能等价的赋值语句是________。
( A )
6、以下程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int a[ ]={1,2,3,4,5},i,j,s=0;
for(i=0;i<5;i++) s=s*10+a[i];
printf("s=%d\n",s);
}
( C )
7、假定a为一个整型数组名,则元素a[4]的字节地址为
( B )
8、若有函数 char*func(char *p) … return p; 则该函数的返回值是 ______。
( C )
9、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
( D )
10、char型常量在内存中存放的是________。
( C )
11、下面程序的输出结果为________。
struct st
{
int x;
int *y;
}
*p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
void main()
{
p=aa;
printf("%d ", ++p->x);
printf("%d ", (++p)->x);
printf("%d ", ++(*p->y));
}
( A )
12、下面的程序
main()
{
int a=2;
do
{
printf("%d\n",a-=2);
}
while(!(--a) );
}
______。
( A )
13、有说明语句int a[4][5]; 则a[2]+3表示__。
( C )
14、执行以下语句后a 的值为________。 int a,b,c; a=b=c=1; ++a||++b&&++c;
( C )
15、下列if语句中,不正确的是________。
( C )
16、下面说法正确的是________。
( B )
17、以下叙述中正确的是________。
( D )
18、c语言中,switch后的括号内表达式的值可以是________。
( C )
19、设有如下定义:int x=10, y=4,z;
4则语句:printf(''%d\n'', z=(x%y, x/y));
的输出结果是________。
( A )
20、下列定义数组的语句中正确的是()。
二、填空题 (共10题,每题2分,共计20分)
1、下面程序段的运行结果是________.
int i=1,s=3;
do
{
s+=i++;
if(s%7==0)continue;
else ++i;
}
while(s<15);
printf("%d",i);
2、执行下列程序段后,输出的a的值是_____________。
main( )
{
int m = 0;
switch(m)
{
case 0: m=2*m+1;
break;
case 1: m=m-1;
break;
case 2: m=m+5;
break
}
printf("%d",m);
}
3、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
4、已知char str[]="student",则strlen(str)的值为________。
5、int a,b;与a*=5-b;等价的赋值语句是________。
6、在c 语言中的实型变量分为两种类型,它们是________和________。
7、循环语句for(i=0;i<3;i++) printf("*");
表达式i=0 执行【1】________次,表达式i++执行【2】________次。
8、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
9、下面程序是计算10个整数中奇数的和及其偶数的和,请填空。
main()
{
int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{
scanf("%d",&b);
canf("%d",&b);
________ ________ ________
}
printf("偶数的和=%d\n",a);
printf("奇数的和=%d\n",c);
}
10、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ascii码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j];
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("cls");
printf("\nplease enter a character string:");
gets(str);
printf("\n\nbefore sorting:\n%s",str);
proc(str);
printf("\nafter sorting decendingly:\n %s",str);
}
三、编程题 (共3题,每题0分,共计40分)
1、请编写函数proc(),其功能是:计算并输出下列多项式值。 s=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)-1/2n) 例如,若主函数从键盘给n输入20后,则输出为s= 0.680803。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:
#include <stdio.h>
double proc(int n)
{
}
void main()
{
int n;
double slim;
printf("\ninput n:");
scanf("%d",&n);
sum=proc(n)。 printf("\ns=%f\n",sum);
}
2、试利用指向结构体的指针编制一程序,实现输入3个学生的学号、数学期中和期末考试成绩。然后计算其平均成绩并输出成绩表,使用结构体实现。
3、编写程序,判断从键盘输入的字符中数字字符的个数、大写字母的个数、小写字母的个数及其它字符的个数,以*作为字符输入结束标志。
相关标签:
- C语言
- 中国刑事警察学院
- 模拟考试