辽宁石油化工大学2022年C语言期末试题

本试卷为辽宁石油化工大学2022年C语言期末试题,题目包括:填空题。

本卷包括如下题型:

一、填空题

C语言期末试题

一、填空题 (共40题,每题2.5分,共计100分)

1、在c语言中,二维数组元素在内存的存放顺序是________.
2、下面程序的输出结果是________。
int x=-32769;
printf("%d",x);
3、程序
main( )
{
float x;
x=3.6;
printf("i=%d", (int)x);
}
的输出结果是________。
4、以下程序的运行结果是 ________
#include <string.h>
typedef struct student
{
char name[10];
long sno;
float score;
}
stu;
main( )
{
stu a={"zhangsan",2001,95},b={"shangxian",2002,90}, c={"anhua",2003,95},d,*p=&d;
d=a;
if(strcmp(a.name,b.name)>0) d=b;
if(strcmp(c.name,d.name)>0) d=c;
printf("%ld%s\n",d.sno,p->name);
}
5、请在以下程序第一行的下划线处填写适当内容,使程序能正确运行。 ________ ( double,double);
main()
{
double x,y;
scanf("%lf%lf",&x,&y);
printf("%lf\n",max(x,y));
}
double max(double a,double b)
{
return(a>b ? a:b);
}
6、字符串函数___________用于把一个字符串写入指定的磁盘文件中。
7、设有如下宏定义
#define MYSWAP(z,x,y)
{
z=x;
x=y;
y=z;
}
以下程序段通过宏调用实现变量a、b内容交换,请填空。 float a=5,b=16,c;
MYSWAP( ________ ,a,b);
8、c语言中free(p)的作用是释放由________所指向的内存区间。
9、已知b=2,则表达式"b+=b-=3"的值是_____________。
10、编辑好一个程序文件后,在运行该程序文件之前先要进行________。
11、有函数调用fun1(x+y, (y,z), 10, fun((x,y-1)));
函数fun1有【1】个参数。
12、宏定义必须写在______之外
13、在c语言中,从参数的形式看,函数可以分为两类:无参函数和( )函数。
14、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数________。
15、下列程序段的运行结果是________。
char s1[20]="abcdef", s2[5]="abc";
strcpy(s1,s2);
printf("%c", s1[4]);
16、下列程序段的运行结果是________。
main()
{
int n,s=0;
for(n=1; n<=5; n++)
{
if(n%2!=0) continue;
s=s+i;
}
printf("%d\n",n);
}
17、下面程序段的运行结果是________。for(a=1,i=-1;-1<=i<1;i++)
{
a++;
printf("%d,",a);
}
printf("%2d",i);
18、在c语言中,假使x为长整型变量,如果我们采用printf("格式控制",x)格式输出x,那么"格式控制"具体表示为"__"。
19、编译预处理包括( )、文件包含、条件编译等。
20、编译预处理包括宏定义、文件包含、( )等。
21、main()
{
int a,b;
for (a=1,b=1;a<=100;a++)
{
if(b>=20) break;
if(b%3==1)
{
b+=3;
continue;
}
b-=5;
}
}
程序的输出结果a的值为________。
22、int y=1, x, *p, a[ ]={2,4,6,8,10};
p=&a[1];
for(x=0;x<3;x++) y + = * (p + x);
printf("%d\n",y);
程序的输出结果y的值是________ 。
23、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
24、#include <stdio.h>
void main()
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];
printf("%d\n",s);
}
25、双精度型数据有效位为______位
26、下列程序段的运行结果是_____。
float b=80 ,*q ;
q=&b;
printf("%f",*q);
27、C语言替换字符的函数是什么?
28、设c 语言中,一个int 型数据在内存中占2 各字节,则int型数据的取值范围为________。
29、在c语言中,将字符串中小写字母转换成大写字母的函数是_____________。
30、下面程序是计算10个整数中奇数的和及其偶数的和,请填空。
main()
{
int a,b,c,i;
a=c=0;
for(i=1;i<=10;i++)
{
scanf("%d",&b);
canf("%d",&b);
________ ________ ________
}
printf("偶数的和=%d\n",a);
printf("奇数的和=%d\n",c);
}
31、下列给定程序中,函数proc()的功能是找出100~m(m 不大于1000)之间百位数字加十位数字等于个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返回。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
#define M 1000 int proc(int*S.int n)
{
int i,j,k,a,b,c;
j=0;
for(i=100;i<N;I++)
{
k=n;
a=k%10;
k/=10;
b=k%10;
c=k/10;
if(a==b+c) s[j]=i;
}
return j;
}
void main()
{
int a[M],m,num=0,i;
do
{
printf("\nEnter m(<=1000):");
scanf("%d",&m);
}
while(m>1000);
num=proc(a,m);
printf("\n\nThe result:\n");
for(i=0;i<NUM;I++) printf("%5d",a[i]);
printf("\n\n");
}
32、请补充函数proc(),该函数的功能是按条件删除一个字符串指定字符一半的数目,具体要求如下:如果该字符串所包含的指定字符的个数是奇数,则不删除,如果其数目是偶数,则删除原串后半部分的指定字符。其中,str指向原字符串,删除后的字符串存放在b所指的数组中,c中存放指定的字符。例如,当str输入"abcabcabcab",c=b时,b的输出为"abcabcaca";
如果str的输入为"abcabcabca",则b的输出为"abcabcabca"。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅程函数proc()的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 80
void proc(char str[],char b[],char c)
{
int i=0,j=0;
int n=0; int m=0;
while(str[i]!='\0')
{
if(str[i]==c) n++; i++:
}
________ ;
if(n%2)
{
while(str[j]!='\0 ')
{
b[j]=str[j];
j++;
}
b[j]='\0';
}
else
{
while(str[i]!='\0 ')
{
b[j++]=str[i];
if(str[i]==c) m++;
if((m>n/2)&&(str[i]==c)) ________ ;
i++:
}
________ ;
}
}
void main()
{
char str[M],b[M];
char c;
system("cls");
printf("Enter the strin9:\n");
gets(str);
printf("Enter the character of the string deleted:");
scanf("%c",&c);
proc(str,b,c);
printf("The new string is:%s\n",b);
}
33、下列给定程序中,函数proc()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ascii码升序排序后输出。 例如,输入opdye,则应输出deopy。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。 试题程序:
int proc(char str[])
{
char c;
unsigned i,j;
for(i=0;i<strlen(str)-1;i++)
for(j=i+1;j<strlen(str);j++)
if(str[i]>str[j])
{
c=str[j];
str[j]=str[i++];
str[i]=c;
}
}
void main()
{
char str[81];
system("cls");
printf("\nplease enter a character string:");
gets(str);
printf("\n\nbefore sorting:\n%s",str);
proc(str);
printf("\nafter sorting decendingly:\n %s",str);
}
34、以下程序对输入两个整数,按从大到小的顺序输出。请在____内填入正确的内容。
void main()
{
int x,y,z;
scanf("%d,%d",&x,&y);
if(_________)
{
z=x;
_________
}
printf("%d,%d",x,y);
}
35、若运行以下程序时,从键盘输入adescriptor↙,则下面程序的运行结果是________。
#include <stdio.h>
void main()
{
char c;
int v0=0,v1=0,v2=0;
do
{
switch(c=getchar())
{
case’a’:
case’a’:
case’e’:
case’e’:
case’i’:
case’i’:
case’o’:
case’o’:
case’u’:
case’u’:v1+=1;
default:
v0+=1;
v2+=1;
}
}
while(c!=’n\’);
printf("v0=%d,v1= %d, v2= %d\n", v0, v1, v2);
}
36、下面程序的输出结果是:
#include <stdio.h>
void add(int *p, int n)
{
int *pend = p + n;
for( ; p<pend; p++) *p += 10;
}
void main( )
{
int a[5]={1,2,3,4,5}, *q = a;
add(q, 5);
for(q=a; q < a+5; q++) printf("%4d", *q);
}
37、定义一个指针p,它指向一个有6个整型元素的一维数组,定义语句为 ______。
38、定义一个指针数组p,它有4个元素,每个指针指向一个整型数据,定义语句为______。
39、函数strlen("1234\0xy")的值为:______。
40、在函数中使用______语句返回值。
相关标签:
  • C语言
  • 辽宁石油化工大学
  • 期末试题