西安石油大学2023年C语言程序设计期末试题
本试卷为西安石油大学2023年C语言程序设计期末试题,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计期末试题
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、若有以下语句:
typedef struct s
{
int g;
char h;
} t;
以下叙述中正确的是________。
( C )
2、各种基本数据类型的存贮空间正确的长度排列为________。
( C )
3、c语言用________表示逻辑"真"值。
( A )
4、下列字符串是标识符的是________。
( B )
5、已知char x[]="hello", y[]={ 'h','e','a','b','e' }; 则关于两个数组长度的正确描述是________。
( B )
6、有如下说明 int a[10]={ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }, *p=a;则数值为 9 的表达式是______。
( B )
7、运行下面程序时 , 若从键盘输入 "5 <cr>", 则程序的输出结果是 __________.
#include <stdio.h>
void main( )
{
int a ;
scanf("%d",&a);
if (a++>5)printf("%d\n",a);
else printf("%d\n",a--) ;
}
( A )
8、以下程序的输出结果是 __________.
#include <stdio.h>
void main()
{
int a[4][4]={{1,3,5,},{2,4,6},{3,5,7}};
printf("%d%d%d%d\n",a[0][3],a[1][2],a[2][1],a[3][0]);
}
( A )
9、若主调用函数类型为 double ,被调用函数定义中没有进行函数类型说明,而 return 语句中的表达式类型为 float 型,则被调函数返回值的类型是 __________ 。
( B )
10、以下能对二维数组a进行正确初始化的语句是________。
( B )
11、现有定义int a; double b; float c; char k; 则表达式a/b+c-k值的类型为
( C )
12、变量a所占的内存字节数是______。
union u{
char st[4];
int i;
long l;
};
struct A {
int c;
union u;
} a;
( C )
13、以下( )不是c语言中用于结构化程序设计的三种基本结构之一。
( D )
14、有以下程序:
#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);
}
程序的输出结果是________。
( A )
15、c语言的基本数据类型包括________。
( A )
16、有以下程序
main()
{
int x=0,y=0,i;
for(i=1;++i)
{
if(i%2==0)
{
x++;
continue;
}
if(i%5==0)
{
y++;
break;
}
}
printf("%d,%d",x,y);
}
程序的输出结果是________。
( A )
17、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( A )
18、以下答案中不是c语言最基本数据类型的是________。
( A )
19、算法指的是________。
( B )
20、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是______。
二、判断题 (共10题,每题2分,共计20分)
( F )
1、当#include后面的文件名用双引号""括起,仅搜索当前目录。
( F )
2、模运算符%,可以用于任何类型变量或常量。
( T )
3、若函数体内没有return语句,程序的流程就执行到函数体的末尾,然后返回到调用函数。这时带回一个不确定的函数值。
( T )
4、在if语句的三种形式中,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用
{
}
括起来组成一个复合语句。
( T )
5、数组定义中,数组名后是用方括号括起来的常量表达式,不能用圆括号。
( F )
6、在c语言的嵌套循环结构中,任何一层循环中的brea语句都可以结束整个嵌套循环的执行。
( T )
7、在所有的关系运算符(>=、>、==、!=、<=、<)中,优先级最低的运算符是"==、!="。
( T )
8、用指针变量可以指向一维数组,也可以指向多维数组。
( F )
9、用puts和gets函数可以输入或输出多个字符串。
( F )
10、定义在main 函数后的任何函数都需在main 中进行函数声明
三、填空题 (共5题,每题4分,共计20分)
1、仅由顺序、选择(分支)和重复(循环)结构构成的程序是________程序。
2、在vc++编译环境下,一个字符型变量所占字节数是________。
3、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
4、int x=1,y=1,z=1; x+=y+=z; 则表达式x 5、如果一个函数无返回值,定义它时函数类型应是______。
四、程序分析题 (共4题,每题5分,共计20分)
1、以下程序的输出结果是________。
main ( )
{
if(2*2==5<2*2==4) printf("t");
else printf("f");
}
2、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
3、下面程序的运行结果是________。
#include<stdio.h>
main()
{
int i;
for(i=1;i<=5;i++)
switch(i%2)
{
case 0:
i++;
printf("#");
break;
case 1:
i+=2;
printf("*");
default:
printf("\n");
}
}
4、下列给定程序中,函数ptoc()的功能是:利用插入排序法对字符串中的字符按从小到大的顺序进行排序。插入法的基本方法是:先对字符串中的头两个元素进行排序,然后把第3个字符插入前两个字符中,插入后前3个字符依然有序;
再把第4个字符插入前三个字符中,待排序的字符串已 在主函数中赋予。 请添加合适的语句____________,使它能得出正确的结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 80
void proc(char*arr)
{
int i,j,n;
char ch;
n=strlen(arr);
for(i=1;i<n;i++)
{
ch=arr[i];
j=i-1;
while(______________)
{
arr[j+1]=arr[j];
j--;
}
arr[j+1]=ch;
}
}
void main()
{
char a[M]="QWERTYUIOPASDFGHJKLMNBVCXZ";
printf("The original string:%s\n",a);
proc(a);
printf("The string after sortin9: %s\n\n",a);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填人所编写的若干语句。 试题程序:
char*proc(char(*a)[81],int num)
{
}
void main()
{
char ss[l0][81],*max;
int n,i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(!strcmp(ss[i],"****")==0)
{
i++;
gets(ssei]);
puts(ss[i]);
}
n=i;
max=proe(ss,n);
printf("\nmax=%s\n",max);
}
2、题⽬描述 某学校为⿎励学⽣锻炼⾝体,要求学⽣周⼀到周五早晨在操场跑步,并进⾏刷卡记录,作为期末评优的依据。刷卡机器中记录的数据格式为学号和刷卡时间,其中学号N为10位数字,时间T格式为yyyymmddhhmmss 读卡程序确保每天不会多次记录同⼀名学⽣的晨跑刷卡时间 要求:根据刷卡机器中记录的学⽣刷卡记录,按照学号升序统计学⽣晨跑次数 输⼊ 输⼊格式为每⾏两个数值,学号N与时间T之间有⼀个空格 。 读取输⼊直到输⼊结束(数据总量不超过1000⾏) 输出 输出格式为每⾏两个数值,学号以及相应的晨跑次数,两者之间有⼀个空格。样例输⼊ 2xxxxx6932 2xxxx311065532 2xxxxx7890 2xxxx409070156 2xxxxx9860 2xxxx329063051 2xxxxx9860 2xxxx305065217 2xxxxx8745 2xxxx305065656 样例输出 2xxxxx6932 1 2xxxxx7890 1 2xxxxx8745 1 2xxxxx9860 2
3、输入n的值,计算并输出1*1+2*2+3*3+4*4+5*5+...+n*n的值。要求编写函数f求平方。
相关标签:
- C语言
- 西安石油大学
- 期末试题