2022年西安医学院公共课《C语言》科目期末试卷A(有答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2022年西安医学院公共课《C语言》科目期末试卷A(有答案)
一、填空题
1、请读程序段:
int a=1,b=2;
if(a&b)printf("***\n");
else printf("$$ $\n");
以上程序段的输出结果是_______。

2、C语言源程序的基本单位是________
3、在C语言源程序中,一个变量代表【】。

4、表达式x=6应当读做_______
5、C语言中的标识符只能由3种字符组成,它们是_______、_______和_______
6、若有以下定义和语句,在程序中可通过指针数组p,用*(p[i]+j)等4种形式引用数组元素s[i][j],另3种形式分别是:_______、_______和_______。

(假设i、j已正确说明并赋值。


int s[10][6],*p[10];
for(i=0;i<10;i++)p[i]=s[i];
7、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是_______,改正后为_______。

void add(float a,float b)
{float c;
c=a+b;
return c;
}
8、若有以下定义和语句,为使变量c1得到字符’A',变量c2得到字符’B’,正
确的输入形式是_______。

char cl,c2;
scanf("%4c%4c",&cl,8&c2);
9、假设变量a和b均为整型,以下语句可以不借助任何变量把a、b中的值进行交换。

请填空。

a+=_______;b=a-_______;a-=_______;
10、下面程序段的运行结果是_______。

char ch[]="600";int a,s=0;
for(a=0;ch[a]>= '0'&&ch[a]<='9';a++)
s=10*s+ch[a]-'o';
printf("%d",s);
二、选择题
11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型
为( )。

A.int
B.float
C.double
D.不确定
12、下面正确的字符常量是( )
A."c"
B. "\\"
C. 'w'
D. "
13、根据以下定义语句和数据的输入方式,scanf语句的正确形式应为。

已有定义:float fl,f2;
数据的输入方式:4.52<回车>
3.5<回车>
A.scanf("%f,%f",&f1,&f2);
B.scanf("%f%f",&fl,&f2);
C.scanf("%3.2f%2.1f",&f1,&f2);
D.scanf("%3.2f%2.1f",&fl,&f2);
14、阅读以下程序,当输入数据的形式为25,13,10<回车>,程序的输出结果
#include<stdio.h>
int main()
{int x,y,z;
scanf("%d%d%d”,8.x.&y,&z);
printf("x+y+z=%d\n",x+y+z);
return0;
}
A.x+y+z=48
B.x+y+z=35
C.x+z=35
D.不确定值
15、若有说明:int a[][3]={1,2,3,4,5,6,7};,则a数组第一维的大小
()
A.2
B.3
C.4
D.无确定值
16、C语言规定:在一个源程序中,main函数的位置( )
A.必须在最开始
B.必须在系统调用的库函数的后面
C.可以任意
D.必须在最后
17、在下面的程序段中()。

Int t,x;
for(t=1;t<=100;t++)
{scanf("%d”,&x);
if(x<0)continue;
printf("%3d",t);
}
A.当x<0时整个循环结束
B.x≥0时什么也不输出
C.printf函数永远也不执行
D.最多允许输出100个非负整数
18、C语言规定,简单变量作为实参时,它和对应形参之间的数据传递方式是()
A.地址传递
B.单向值传递
C.由实参传给形参,再由形参传回给实参
D.由用户指定传递方式
19、语句int(*ptr)();的含义是()
A.ptr是指向一维数组的指针变量
B.ptr是指向int型数据的指针变量
C.ptr是指向函数的指针,该函数返回一个int型数据
D.ptr是一个函数名,该函数的返回值是指向int型数据的指针
20、下面程序段的运行结果是()。

char pl[]="abcdefgh",*p=pl;
p+=3;
printf("%d\n",strlen(strcpy(p,"ABCD")));
A.8
B.12
C.4
D.7
21、以下程序的运行结果是()。

#include<stdio.h>
int fun(int n)
{int m=0,f=-1,i;
for(i=1;i<=n;i++)
{m=m+i*f;
f=-f;
}
return m;
int main()
{printf("m=%d\n",fun(10));
return(0);
A.m=5
B.m=-6
C.m=6
D.m=-5
22、下面程序的运行结果是()。

#include <stdio.h>
#include <string.h>
int main()
{char a[80]="AB',b[80]="LMNP";inti=0;
strcat(a,B.;
while(a[i++]!=‘\o’)b[i]=a[i];
puts(B.;
return 0;
}
A.LB
B.ABLMNP
C.AB
D.LBLMNP
23、当运行以下程序时,从键盘输入:
ab<回车>
C<回车>
def<回车>
则下面程序的运行结果是()。

#include <stdio.h>
#defineN6
int main()
{charc[N];
int i=0;
for(;i<N;c[i]=getchar(),i++);
for(i=0;i<N;i++)
putchar(c[i]);
return 0;
}
A.abcdef
B.a
C.b
D.ab
b c c
c d d e
f
24、以下程序的输出是()。

#include<stdio.h>
int main()
{int x=2,y=-1,z=2;
if(x<y)
if(y<0)z=0;
else z+=1;
printf("%d\n",z);
return 0;
A)3 B.2 C.1 D.0 25、下面程序的运行结果是( )。

#include<stdio.h>
int main()
{int y=10;
do{y--;}
while(--y);
printf("%d\n",y--);
return 0;
}
A)-1 B)1 C)8 D)0
三、读程序填空
26、以下程序的输出结果为_______。

#include<stdio.h>
int main()
{charc='x';
printf("c:dec=%d,oct=%o,hex=%x,ASCIl=%c\n",c,c,c,c);
return 0;
}
27、以下程序的输出结果为_______.
#include <stdio.h>
int main()
{printf("*%f,%4.3f*\n",3.14,3.1415);
return0;
}
28、以下程序a对应的数学表达式是_______;程序b对应的数学表达式是_______。

程序a 程序b
# include<stdio.h> # include<stdio.h>
int main() int main()
{ int a,b; { int a,b;
scanf("%d",&a); scanf("%d",&a);
if(a<0) b=-1; b=0;
else if(a==0) if(a!=0)
b=0; if(a>0) b=1;
else b=1; else b=-1;
printf("a=%d,b=%d\n",a,b); printf("a=%d,b=%d\n",a,b);
return 0; return0;
} }
29、若运行以下程序时输入:35/<回车>,则程序的运行结果是_______。

#include <stdio.h>
int main()
{float x,y;
char o;
double r;
scanf("%f%f%c",&x,&y,&o);
switch(o)
{case'+':r=x+y;break;
case'-':r=x-y;break;
case'*':r=x*y;break;
case'/':r=x/y;break;
printf("%f",r);
return 0;
}
30、当运行以下程序时,从键盘输入“China#<回车>”,则下面程序的运行结果是_______。

#include <stdio.h>
int main()
{int vl=0,v2=0;char ch;
while((ch=getchar())!='#’)
switch(ch)
{ case'a’:
case'h':
default:v1++;
case′o':v2++;
printf("%d,%d\n",v1,v2);
return 0;
}
31、下面函数func的功能是_______。

#include<conio.h>
#include <stdio.h>
#include<stdlib.h>
long func(long num)
{long k=1;
num=labs(num);
do
{k*=num%10;
num/=10;
}while(num);
return(k);
}
int main()
{long n;
printf("\nPlease enter a number:");
scanf("%ld",&.n);
printf("\nThe product of its digits is%ld.",func(n));
return(0);
}
32、下面程序中的数组a包括10个整型元素,从a中第二个元素起,分别将后项减前项之差存入数组b,并按每行3个元素的形式输出数组b。

请填空。

#include <stdio.h>
int main()
{ int a[10],b[10],i;
for(i=0;_______;i++)
scanf("%d",8.a[i]);
for(i=1;_______;i++)
b[i]=a[i]一a[i-1];
for(i=1;i<10;i++)
{printf("%3d",b[i]);
if(_______)printf("\n");
}
return 0;
}
33、下面程序的功能是将字符串中的数字字符删除后输出。

请填空。

#include<stdio.h>
void delnum(char*s)
{inti,j;
for(i=0,j=0;s[i]!=\0';i++)
if(s[i]<o'_______s[i]>9'){s[j]=s[i];j++;}
_______;
}
int main()
{char item[80]=" ";
printf("\ninput a string:");
gets(item);
delnum(item);
printf("\n%s",_______);
return(0);
}
四、编程题
34、试定义一个带参的宏swap(x,y),以实现两个整数之间的交换,并利用它将一维数组a和b的值进行交换。

35、试利用结构体类型编制一个程序,实现输入一个学生的数学期中和期末成绩,然后计算并输出其平均成绩。

参考答案
一、填空题
1、$$$
2、函数
3、内存中的一个存储单元
4、将常量6赋给变量x
5、【1】字母【2】数字【3】下划线
6、【1】p[i][j]【2】(*(p+i))[j]【3】*(*(p+i)+j)
7、【1】void add(float a,float b)【2】float add(float a,float b)
8、A囗囗囗B囗囗囗<回车>
9、【1】b【2】b【3】b
10、600
二、选择题
11、C
12、C
13、B
14、D
15、B
16、C
17、D
18、B
19、C
20、C
21、A
22、D
23、D
24、B
25、D
三、读程序填空
26、c:dec=120,oct=170,hex=78,ASCII=x
27、*3.140000,3.142*
28、【1】
29、8.#
30、5,5
31、计算整数num的各位数字之积。

32、【1】i<10【2】i<10【3】i%3==0
33、【1】||【2】[j]= '\0'【3】item
四、编程题
34、/*两个一维数组元素的交换*/
#define swap(x,y)
{int t;t=x;x=y;y=t;}
int main()
{int i,a[10],b[10];
for(i=0;i<10;i++)
scanf("%d”,&.a[i]);
for(i=0;i<10;i++)
scanf("%d”,&b[i]);
for(i=0;i<10;i++)
swap(a[],b[i]);
for(i=0;i<10;i++)
printf("%d",a[i]);
printf(\n");
for(i=0;i<10;i++)
printf("%d',b[i]);return 0;
}
35、#include<stdio.h>
int main()
{struct study int mid;
int end;
int average;
}math;
scanf("%d%d",&math.mid,&.math.end);
math.average=(math.mid+math.end)/2;
printf("average=%d\n",math.average);
return 0;
}。

相关文档
最新文档