江汉大学2023年计算机C语言期末模拟
本试卷为江汉大学2023年计算机C语言期末模拟,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言期末模拟
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、以下关于typedef的叙述错误的是________。
( B )
2、若有以下定义和语句:"double r=99,*p=&r; *p=r;",则以下正确的叙述是________。
( C )
3、设整型变量a为5,使b不为2的表达式是________。
( D )
4、若有以下定义和语句: double r=99 , *p=&r ; *p=r ; 则以下正确的叙述是______。
( D )
5、下列四个叙述中,正确的是______。
( C )
6、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
( A )
7、下列关于指针运算的描述中,错误的是________。
( D )
8、若有以下定义,则能使值为3的表达式是 int k=7,x=12;
( B )
9、请选出可以作为c语言用户标识符的一组标识符号
( D )
10、下列不属于逻辑运算符的是________。
( B )
11、在32位的计算机中,一个char型数据所占的内存长度的字节是________。
( C )
12、以下选项中,非法的字符常量是________。
( C )
13、若x、y、z、m、n均为int型变量,则执行下面语句后z的值为( ) m=10; n=5; x=(--m=n++)--m:++n; y=m++; z=n;
( B )
14、若有以下定义和语句 union data
{
int i;
char c;
float f;
} x;
int y;
则以下语句正确的是________。
( C )
15、逗号表达式"(a=3*5,a*4),a+15"的值是________。
( B )
16、要表达出数学关系19 ≥ x ≥ 0,c语言中应使用表达式( )
( D )
17、与二进制数100101等值的十进制数是________。
( B )
18、下面四个选项中,均是合法的用户标识符的选项是________。
( B )
19、关于c语言,下列说法正确的是________。
( D )
20、下列( )表达式的值为真,其中a=5; b=8; c=10; d=0
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、有如下程序:
main ()
{
int x = 1, a = 0, b = 0;
switch (x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
printf ("a = %d, b = %d\n", a, b);
}
该程序的输出结果是________。
( C )
2、关于结构化程序设计原则和方法的描述错误的是________。
( C )
3、有以下程序
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<回车>,程序执行后的输出结果是________。
( D )
4、下列描述正确的是________。
( A )
5、switch语句不能用于下列哪种数据类型 ( )
( 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);
}
执行后输出的结果是________。
( A )
7、有如下程序
main()
{
int x=1,a=5,b=5;
switch(x)
{
case 0: b--;
case 1: a--;
case 2: a--;
b--;
}
printf("a=%d,b=%d\n",a,b);
}
该程序的输出结果是______。
( C )
8、下列if语句中,不正确的是________。
( D )
9、在c 的if 语句中,可用作条件的表达式是________。
( A )
10、执行下面语句后的输出为____
int i= -1;
if (i < =0)printf("****\n");
else printf("%%%%\n");
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、break语句的正确的用法是________。
( B )
2、在"先判断后工作"的循环程序结构中,循环体执行的次数最少是________次。
( D )
3、给定下面的代码: int i=1,j=10;
do
{
if(i++>--j) continue;
}
while(i<5) 执行完之后,i与j的值分别是多少 ( )
( C )
4、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( D )
5、下列叙述中正确的是________。
( B )
6、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( D )
7、有以下程序:
#include<stdio.h>
main()
{
int i=0,a=0;
while(i<20)
{
for(;;)
{
if((i%5)==0)break;
else i--;
}
i+=13,a+=i;
}
printf("%d\n",a);
}
程序的输出结果是________。
( C )
8、有以下程序
main()
{
int i;
for(i=1;i<=40;i++)
{
if(i++%5==0) if(++i%8==0) pfintf("%d",i);
}
printf("\n");
}
执行后的输出结果是________。
( D )
9、以下程序中,while循环的循环次数是______。
main()
{
int i=0;
while(i<10)
{
if(i<1) continue;
if(i==5)break;
i++;
}
......
}
( A )
10、以下关于continue语句的描述中正确的是________。
四、数组/指针数组 (共10题,每题1分,共计10分)
( A )
1、若有定义:"int a[2][3];",则对a数组的第i行第j列元素的正确引用为( )。
( D )
2、若有定义: int a[3][4]; 不能表示数组元素 a[1][1] 。
( B )
3、设 p1 和 p2 是指向同一个 int 型一维数组的指针变量, k 为 int 型变量,则不能正 确执行的语句是______。
( D )
4、合法的数组定义是 __________.
( D )
5、下列一维数组初始化语句中,正确且与语句 float a[ ]={ 0,3,8,0,9}; 等价的是 __________.
( B )
6、若数组a定义为int[][]a=new int[3][4],则a是________。
( A )
7、下列对字符数组进行初始化的语句正确的是________。
( A )
8、以下选项中,不能正确赋值的是 ______。
( B )
9、若有定义语句:double x[5]= {1.0,2.0,3.0,4.0,5.0 }, *p=x;
则错误引用x数组元素的是______。
( C )
10、若二维数组a有m行n列,则下面能够正确引用元素a[i][j]的为______。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、以下不能将s所指字符串正确复制到t所指存储空间的是________。
( B )
2、下列数据中为字符串常量的是________。
( C )
3、以下叙述中不正确的是________。
( D )
4、下列字符串中,正确的c标识符是________。
( D )
5、下列字符常量的写法中,正确的是________。
( B )
6、字符串"xyz"在内存占用的字节数是______。
( D )
7、按照c语言规定的用户标识符命名规则,不能出现在标识符中的是________。
( D )
8、以下选项中,合法的 c 语言常量是________。
( D )
9、在宏定义#define PI 3.14159中,用宏名代替一个________。
( D )
10、判断字符串a 和b 是否相等,应当使用。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、putchar ( )函数可以向终端输出一个 ( ) 。
( C )
2、每个c程序中都必须有且仅有一个________。
( D )
3、下列说法正确的是________。
( B )
4、设c1,c2均是char类型变量,则不正确的函数调用为______。
( A )
5、若有定义语句: char*s1="ok",*s2="ok"; 以下选项中,能够输出"ok"的语句是______。
( B )
6、有如下程序:
#include <stdio.h>
long fib(int n) {
if(n>2) return(fib(n-1)+fib(n-2));
else return(2);
}
main()
{
printf("%d\n",fib(3));
}
该程序的输出结果是________。
( B )
7、关于c语言中的全局变量,下列描述中正确的是________。
( B )
8、有以下程序段若要给 c1、c2、c3 分别输入字母a,b,c,则以下对输入形式的描述正确的是________。
( B )
9、在一个. C程序中()。
( B )
10、若执行 fopen 函数时发生错误,则函数的返回值是()。
七、指针 (共10题,每题1分,共计10分)
( B )
1、设a为存放(短)整型的一维数组,如果a的首地址为p,那么a中第i 个元素的地址为( )。
( 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;
}
造成错误的原因是________。
( C )
3、以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{
int i;
for(i=0;i<n;i++)
{
________ printf("%d",w[i]);
}
printf("\n");
}
下列划线处应填入的语句是________。
( B )
4、以下函数调用语句中含有实参个数为 __________. func((exp1,exp2),(exp3,exp4,exp5));
( D )
5、若要用下面的程序片段使指针变量p指向一个存储字符型变量的动态存储单元,则应填入; char * p; p= ( ) malloc (sizeof (char));
( A )
6、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( C )
7、下面函数定义形式正确的是________。
( B )
8、执行下列语句后的结果为________。 int x=3,y; int *px=&x; y=*px++;
( D )
9、一个c语言程序是由____构成。
( D )
10、对于 void 类型函数,调用时不可作为()。
八、结构体 (共10题,每题1分,共计10分)
( A )
1、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
( B )
2、有以下程序
struct s
{
int x,y;
}
data[2]={ 10,100,20,200 };
main()
{
struct s *p=data;
printf("%d\n",++(p->x));
}
程序运行后的输出结果是________。
( D )
3、有以下程序
#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 )
4、若有以下说明语句:
struct student
{
int num;
char name[ ];
float score;
} stu;
则下面的叙述不正确的是: ( )
( A )
5、程序中有下面的说明和定义
struct abc
{
int x ;
char y ;
}
struct abc s1 , s2 ;
则会发生的情况是______。
( C )
6、以下对 c 语言中共用体类型数据的叙述正确的是______。
( D )
7、有以下程序:
#include <stdio.h>
struct s
{
int a, b;
}
data[2]= {10, 100, 20, 200 };
main()
{
struct s p=data[1];
printf("%d\n", ++(p.a));
}
程序运行后的输出结果是______。
( C )
8、下面程序的输出结果为________。
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 )
9、有以下程序
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+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
( B )
10、c语言中,定义结构体的保留字是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、有如下程序段,则正确的执行结果是________ int m=3;
while(m<=5)
{
printf("%d ",m-3);
m++;
}
( D )
2、要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{
int i,j,k;
for(i=1;i<=5;i++)
{
for(j=1;j<=20-3*i;j++) printf(" ");
for(k=1;________;k++) printf("%3d",k);
for(________;k>0;k++) printf("%3d",k);
printf("\n");
}
}
( A )
3、以下程序的输出结果是
f(int b[],int m,int n)
{
int i,s=0;
for(i=m;i<n;i=i+2) s=s+b[i];
return s;
}
main()
{
int x,a[]={1,2,3,4,5,6,7,8,9};
x=f(a,3,7);
printf("%d\n",x);
}
( C )
4、在c语言程序中,表达式5%2的结果是______。
( D )
5、下列关于单目运算符++、--的叙述中正确的是________。
( C )
6、以下程序的结果是______。int a=5,b=7;
void sun()
{
a=100;
b=200;
}
main()
{
int a=200,b=100;
sun();
printf("%d %d\n",a,b);
}
( C )
7、有以下程序
#include <stdio.h>
#include <stdlib.h>
int fun(int n)
{
int *p;
p=(int*)malloc(sizeof(int));
*p=n;
return *p;
}
main()
{
int a;
a=fun(10);
printf("%d\n",a+fun(10));
}
程序的运行结果是______。
( B )
8、阅读下列程序:
main( )
{
int n[3],i,j,k;
for(i=0;i<3;i++)n[i]=0;
k=2;
for(i=0;i<k;i++)for(j=0;j<k;j++)n[j]=n[i]+1;
for(i=0;i<3;i++)printf(''%d'',n[i]);
printf(''\n'');
}
运行该程序,其输出结果是________。
( D )
9、有以下程序:
main()
{
int x=10,y;
if(x<20) y=100;
if(x>4) y=55/x;
else y=10;
printf("%d\n",y);
}
则输出结果是________。
( D )
10、以下程序的执行结果是________。
main()
{
int w = 1, x = 2, y = 3, z = 4;
w =( w < x ) ? x : w;
w =( w < y ) ? y : w;
w =( w < z ) ? z : w;
printf( "%d " , w );
}
相关标签:
- C语言
- 江汉大学
- 期末模拟