广西财经学院2023年计算机C语言

本试卷为广西财经学院2023年计算机C语言,题目包括:单项选择题,填空题,编程题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。

计算机C语言

一、单项选择题 (共20题,每题2分,共计40分)

(  A  )
1、设有以下定义和语句: char str[20]一"program",*p; p=str: 则以下叙述中正确的是________。
A、*P与str[0]的值相等
B、str与P的类型完全相同
C、str数组长度和P所指向的字符串长度相等
D、数组str中存放的内容和指针变量P中存放的内容相同
(  B  )
2、下列表达式的结果正确的是________。
int aa,bb,cc,dd;
aa=bb=cc=dd=1;
(aa+1==2) ? bb=aa+2 : aa+3
A、2
B、3
C、1
D、5
(  B  )
3、以下定义语句正确的是________。
A、int n=5,a[n][n];
B、int a[ ][3]={{1,2},{3,4},{5,6}};
C、int a[ ][3];
D、int a[ ][ ]={{1,2},{3,4},{5,6}}
(  D  )
4、下面哪一个不是字符常量________。
A、'a'
B、'?'
C、'9'
D、"a"
(  D  )
5、要输出下面的图形,请完善程序。
#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、k<=i
k=i
B、k<i
k=i-1
C、k<i
k=i
D、k<=i
k=i-1
(  D  )
6、下列选项中,能够正确定义数组的语句是________。
A、int num[0..2008];
B、int num[];
C、int N=2008;
D、#define N 2008
int num[N]; int num[N]
(  B  )
7、若变量已正确定义,有以下程序段
i=0;
do printf("%d,"i);
while(i++);
printf("%d\n",i);
其输出结果是________。
A、0,0
B、0,1
C、1,1
D、程序进入无限循环
(  D  )
8、整型变量x和y的值相等,且为非0值,则以下选项中结果为0的表达式是______。
A、X||Y
B、X|Y
C、X&Y
D、X^Y
(  A  )
9、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
A、非0 0
B、0 1
C、非0非0
D、1 1
(  C  )
10、以下正确的说法是________。
A、定义函数时,形参的类型说明可以放在函数体内
B、return后边的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果形参与实参类型不一致,以实参类型为准
(  D  )
11、若有下面的说明和定义,则sizeof(struct aa)的值是________。
struct aa {
int rl;
double r2;
float r3;
union uu {
char u1[5];
long u2[2];
} ua;
} mya;
A、30
B、29
C、24
D、22
(  B  )
12、在c语言中,'a'和"a"存储所占用的字节数分别是________。
A、1,1
B、1,2
C、2,1
D、2,2
(  D  )
13、有以下程序:
#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));
}
程序运行后的输出结果是______。
A、10
B、11
C、20
D、21
(  B  )
14、以下对局部变量描述错误的是________。
A、在函数内部定义的变量
B、在程序的全部执行过程中一直占用存储单元。
C、在main函数中定义的变量是局部变量
D、形式参数也是局部变量。
(  C  )
15、在c语言中,系统为一个结构体变量分配的内存是________。
A、各成员所需内存量的总和
B、结构体第一个成员所需的内存量
C、成员中占内存量最大者所需的容量的整数倍
D、结构体中最后一个成员所需的内存量
(  A  )
16、若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x, ____是正确的。
A、p2=p1
B、p2=**p1
C、p2=&p1
D、p2=*p1
(  D  )
17、有字符数组a[80]和b[80],则正确的输出语句是________。
A、puts(a,b);
B、printf("%s,%s",a[],b[]);
C、putchar(a, b);
D、puts(a),puts(b);
(  A  )
18、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
A、s[j++]=s[i]
B、s[++j]=s[i]
C、s[j]=s[i];j++
D、s[j]=s[i]
(  B  )
19、以下程序的执行结果是 main()
{ int x = 0, s = 0;
while( !x != 0 ) s += ++x;
printf( "%d ",s ); }
A、0
B、1
C、语法错误
D、无限循环
(  B  )
20、若 k 为 int 型变量,则以下程序段的执行结果是()。k=-8567; printf("|%06D|\n",k);
A、格式描述符不合法,输出无定值
B、输出为|%06D|
C、输出为|0-8567|
D、输出为|-8567|

二、填空题 (共10题,每题2分,共计20分)

1、表达式5%(-3)的值是________,表达式-5%(-3)的值是________。
2、以下sstrcpy( )函数实现字符串复制,即将t所指字符串复制到s所指向内存空间中,形成一个新的字符串s。请填空。
void sstrcpy(char *s,char *t)
{
while(*s++= ________);
}
main( )
{
char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
}
3、在c语言中,每个变量都具有存储类别属性。存储类别是指数据在内存中存储的方法。并且存储方法分为_______类。
4、结构化程序设计的3种基本结构是:( )结构、选择结构、循环结构,这三种基本结构构成了复杂的c语言程序。
5、若有"int a[3][2]={{1,2},{3},{4,5}};",则a[1][1]的值是________。
6、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
7、执行下面程序段后, k 值是________。
k=1;
n=263;
do
{
k*=n%10;
n/=10;
}
while(n);
8、以下程序的运行结果是_____________。
main( )
{
int k, a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
for( k=0;k<4;k ++)printf("%d,",a[k][k]);
}
9、函数实参的传递分为
10、在传值调用中,实际是把实参的______。

三、编程题 (共3题,每题0分,共计40分)

1、编写程序:从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止。程序功能如下:
输入你要保存到的文件的名称:
test.txt
现在你可以输入你要保存的一些字符,以#结束:
www.baidu.com
#
2、编程序建立一个带有头结点的单向链表,链表结点中的数据通过键盘输入当输入数据为-1时表示输入结束,使用结构体实现。
3、从键盘输入圆的半径,计算并输出圆面积与周长,要求结果保留两位小数。