北华大学2022年计算机C语言
本试卷为北华大学2022年计算机C语言,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
计算机C语言
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、若有定义:"int a=4,b=5; float x=3.4,y=2.1; ",则下列表达式的值为( )。 (float)(a+b)/2+(int)x%(int)y;
( B )
2、c语言中,下列不合法的字符串常量是________。
( C )
3、以下程序的输出结果是________。
#define f(x) x*x
main()
{
int a=6,b=2,c;
c=f(a)/f(b);
printf("%d\n",c);
}
( C )
4、下述对c语言字符数组的描述中错误的是________。
( B )
5、c语言对嵌套if语句的规定是:else总是与( ) 。
( C )
6、以下程序的运行结果是:
#include<stdio_h>
void sub(int s[] , int y)
{
static int t=3 ;
y=s[t] ;
t-- ;
}
main()
{
int a[]={1,2 , 3 , 4}, i , x=0 ;
for(i=0 ; i<4 ; i++)
{
sub(a,x) ;
printf( "% d ", x) ;
}
printf( "\ n " ) ;
}
( A )
7、c语言中,下列运算符优先级最高的是________。
( D )
8、已知3个字符为:a、z和8,按它们的ascii码值升序排序,结果是________。
( A )
9、表示一条指令的存储单元的符号地址称________。
( A )
10、在int a=3,*p=&a中,*p的值是________。
( A )
11、下列描述说明正确的是________。
( A )
12、在c语言中,不正确的int类型的常数是______。
( D )
13、有以下程序
#include<stdio.h>
main ()
{
int i, n;
for (i = 0; i < 8; i++)
{
n = rand () % 5;
switch (n)
{
case 1:
case 3:
printf ("%d\n", n);
break;
case 2:
case 4:
printf ("%d\n", n);
continue;
case 0:
exit (0);
}
printf ("%d\n", n);
}
}
以下关于程序执行情况的叙述,正确的是______。
( D )
14、以下关于排序算法的叙述中,正确的是________。
( B )
15、宏定义用于将一个标识符定义为一个
( B )
16、以下选项中,能定义m为合法的结构体变量的是______。
( D )
17、循环语句"for(i=1;i<0;i++) i++; "的循环次数是________。
( B )
18、以下叙述中正确的是________。
( C )
19、下面说法正确的是________。
( D )
20、int a[10]; 合法的数组元素的最小下标值为____
二、填空题 (共10题,每题2分,共计20分)
1、一个变量的指针是指 ________ 。
2、以下函数sstrcat( )的功能是实现字符串的连接,即将t所指字符串复制到s所指字符串的尾部。例如:s所指字符串为abcd,t所指字符串为efgh,函数调用后s所指字符串为abcdefgh。请填空。
void sstrcat(char *s, char *t)
{
int n;
n= strlen(s);
while (*(s+n)= ________ )
{
s++;
t++;
}
}
3、若变量x,y已定义为int类型且x的值为99,y的值为9,请将输出语句printf( ________ ,x/y); 补充完整,使其输出的计算结果形式为:x/y=11。
4、有int x=3,y=-4,z=5; 则表达式(x&&y)==(x||z)的值为 ________。
5、在c语言中,逻辑运算符中的"&&"称为________。
6、下列程序段的运行结果是________。
char a='m' ,*p ;
p=&a;
printf("%c",*p);
7、字符读写函数( )是用于把一个字符写入磁盘文件。
8、下面程序的功能是统计正整数的各位数字中零的个数,并求各位数字中的最大者。请分析程序填空。
#include<stdio.h>
main()
{
int n,count,max,t;
count=max=0;
scanf("%d",&n);
do
{
t= 【1】________;
if(t==0) ++count;
else if(max<t) 【2】________;
n/=10;
}
while(n);
printf("count=%d,max=%d",count,max);
}
9、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在 内填入正确的内容。
#include <stdio.h>
void main()
{
char c;
c=getchar();
if(c>=’a’&&c<=’u’) ;
else if(c>=’v’&&c<=’z’) ;
putchar(c);
}
10、预处理命令以______ 开头。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不变 例如:当a数组中的字符串为:"clanguage"时,程序的输出结果为:cgalgnaue()
2、编写程序:从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,按成绩从低到高排序并输出排序后的学生信息。 输入输出示例:括号内为说明,无需输入输出 输入样例: 3 (n=3) 1000 85 1001 90 1002 75 输出样例: 1002 75 1000 85 1001 90
3、从键盘上输入一个2*3的矩阵,将其转秩后形成3*2的矩阵输出。
相关标签:
- C语言
- 北华大学