广西艺术学院2022年C语言程序设计专升本练习
本试卷为广西艺术学院2022年C语言程序设计专升本练习,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计专升本练习
一、单项选择题 (共20题,每题2分,共计40分)
( C )
1、若有下列定义和语句: int u=011,v=0x11,w=11; printf("%o,%x,%d\n",u,v,w): 则输出结果是________。
( C )
2、表达式y=(13>12?15:6>7?8:9)的值为________ 。
( B )
3、break语句的正确的用法是________。
( C )
4、下面正确的字符常量是________。
( C )
5、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( C )
6、设有以下说明语句 struct stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
( B )
7、若有定义:int a[4][10]; 则以下选项中对数组元素a[i][j]引用错误的是______。 (0<=i<4,0<=j<10)
( C )
8、在c语言中引用数组元素时,其数组下标的数据类型只能是________。
( D )
9、c语言中函数返回值的类型决定于
( D )
10、要定义整型数组x,使之包括初值为0的三个元素,下列语句中错误的是________。
( D )
11、有以下程序
#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 )
12、若x,y均定义成int型,z定义为double型,以下不合法的scanf函数调用语句是________。
( B )
13、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若有p=&data;
则对data中成员a的引用正确的是________。
( B )
14、有以下程序
void f(int *q)
{
int i=0;
for( ;i<5;i++) (*q)++;
}
main()
{
int a[5]={1,2,3,4,5},i;
f(a);
for(i=0;i<5;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
( D )
15、下列选项中用于判断ch是否是字符的表达式是________。
( B )
16、以下叙述中正确的是______。
( C )
17、以下符合c语言语法的实型常量是________。
( B )
18、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
( A )
19、下面不正确的字符串常量是________。
( C )
20、判断 i 和 j 至少有一个值为非0的表达式是____。
二、判断题 (共10题,每题2分,共计20分)
( T )
1、非静态全局变量的作用域可以扩展到构成该程序的其他源程序文件中。
( F )
2、while语句的一般形式如下,其中的循环体语句只能是一条语句。
( F )
3、表达式是一长串式子,常量与变量并不是表达式。()
( F )
4、c语言每个函数的返回值都是int型的。
( F )
5、break 可用于循环体中,不可用于 switch 语句中
( T )
6、在标准c中,整型变量与字符变量是可以通用的。
( F )
7、字符数组char c[]="string";有6 个数组元素
( F )
8、定义char *string= "string? "是将字符串的值赋给指针变量string 。
( F )
9、tc中函数调用时,函数参数求值顺序是从右到左的。
( T )
10、数组名能与其它变量名相同。数组名后是用方括号括起来的常量表达式,不能用圆括号。
三、填空题 (共5题,每题4分,共计20分)
1、c语言标识符的第一个字符必须为下划线或者________。
2、下列程序段的运行结果是________。
main()
{
int i=1,s=0;
for( ; ; )
{
s=s+i ;
i++;
if(i>4) break ;
}
printf("%d\n",s);
}
3、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
4、一个c语言源程序由若干函数组成,其中至少应含有一个 ()
5、C语言源程序经过编译后,生成文件的后缀名是 ___。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序的执行结果是____。
#include<stdio.h>
void main()
{
char c='a'+10;
printf("c=%c\n",c);
}
2、下列程序段的运行结果是________。
int a=2 ,*p ;
p=&a;
printf("%d",*p);
3、下面程序的功能是检查一个二维数组是否对称(即对所有i和j 都有a[i][j]=a[j][i] )。请分析程序填空。
main()
{
int i,j,found=0,a[4][4];
printf("enter array(4*4):\n");
for(i=0;i<4;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);
for(j=0;j<4;j++)for( 【1】________;i<4;i++)if(a[j][i]!=a[i][j])
{
【2】________;
break;
}
if(found) printf("no");
else printf("yes");
}
4、以下程序输出的结果是 ________。
int ff(int n)
{
static int f=l;
f=f*n;
return f;
}
main()
{
int i;
for(i=1;i<=5;i++) printf("%d\n",ff(i));
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:计算下列表达式:s=1!+2!+3!+4!+……+10!
2、题⽬描述
完成⼀个对候选⼈得票的统计程序。假设有3个候选⼈,名字分别为Li,Zhang和Fun。使⽤结构体存储每⼀个候选⼈的名字和得票数。记录每⼀张选票的得票⼈名,输出每个候选⼈最终的得票数。结构体可以定义成如下的格式:
struct person {
char name[20];
int count;
}leader[3] = {“Li”, 0, “Zhang”, 0, “Fun”, 0};
输⼊
第⼀⾏有⼀个整数n,表⽰以下有n张选票信息将会输⼊。保证n不⼤于100。
以后的n⾏中,每⼀⾏包含⼀个⼈名,为选票的得票⼈。保证每⼀个⼈名都是Li,Zhang和Fun中的某⼀个。
输出
有三⾏,分别为Li,Zhang和Fun每⼈的得票数。格式为⾸先输出⼈名,其后输出⼀个冒号,最后输出候选⼈的得票数。
请注意⾏尾输出换⾏。
样例输⼊
10
Li
Li
Fun
Zhang
Zhang
Fun
Li
Fun
Zhang
Li
样例输出
Li:4
Zhang:3
Fun:3
3、编写程序,将用户输入的字符串中删除所有的数字,然后输出剩余的字符。
相关标签:
- C语言
- 广西艺术学院
- 专升本练习