山东中医药大学往年计算机C语言期末
本试卷为山东中医药大学往年计算机C语言期末,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言期末
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、在执行完下列的c语句段之后,则b的值是________。 char a='a'; int b; b=((34&&56)&&(a<'b'));
( B )
2、数据的存储结构是指________。
( C )
3、执行语句"x=(a=3,b=a--)"后,x,a,b的值依次为________。
( C )
4、下面正确的字符常量是________。
( C )
5、以下四项中属于c语言关键字的是________。
( A )
6、下列四组常数中,均是合法整型常量的一组是________。
( D )
7、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是________。
( B )
8、与十六进制数200等值得十进制数为________。
( A )
9、若变量x、y已正确定义并赋值,以下符合c语言语法的表达式是________。
( D )
10、以下都是c语言标识符的是________。
( B )
11、以下叙述正确的是________。
( C )
12、设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为______。
( B )
13、要表达出数学关系19 ≥ x ≥ 0,c语言中应使用表达式( )
( B )
14、下列各语句序列中,能够将变量u.s 中最大值赋值到变量t 中的是________。
( B )
15、设有int x,y;
以下语句判断x和y是否相等,正确的说法是该语句________。if (x=y) printf("" x is equal to y."");
( A )
16、下面选择中正确的赋值语句是(设char a[5],*p=a;)________。
( D )
17、以下叙述正确的是________。
( B )
18、表达式10!=12的值是________。
( C )
19、下列选项中,不正确的赋值语句是_______
( A )
20、C语言中,char 类型数据占()。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、若int i=10;
执行下列程序后,变量i的正确结果是________。 switch (i)
{
case 0: i+=1;
case 10: i+=1;
case 11: i+=1;
default: i+=1;
}
( C )
2、若a的值为3时,下列程序段被执行后,c的值是________。 int c = 1; if (a>0) if (a>3) c = 2; else c = 3; else c = 4;
( C )
3、执行以下程序段后,w的值为________。 int w='a',x=14,y=15; w=((x||y)&&(w<'a'));
( A )
4、switch语句不能用于下列哪种数据类型 ( )
( A )
5、以下程序的输出结果是________。
#include<stdio.h>
main()
{
int a=4,b=3,c=2,d=1;
printf("%d",a<b?a:d<c?d:b);
}
( C )
6、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
( A )
7、选择出合法的if语句(设int x,a,b,c;)________。
( D )
8、在c语言中,if语句后的一对原括号中,用以决定分支的流程的表 达式________。
( A )
9、c语言的if语句嵌套时,if与else的配对关系是________。
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、若有以下程序段,w和k都是整型变量:
w=k;
LB:if(w==0)
goto LE;
w--;
printf("*") goto LB;
LE;
则不能与上面程序段等价的循环语句是________。
( D )
2、以下程序的输出结果是
main( )
{
int a,b;
for(a=1,b=1;a<=100;a++)
{
if (b>=10) break;
if (b%5==1)
{
b+=5;
continue;
}
}
printf("%d\n",a);
}
( D )
3、有以下程序
#include <stdio.h>
main()
{
int x=8;
for( ; x>0; x--)
{
if(x%3)
{
printf("%d,",x--);
continue;
}
printf("%d,",--x);
}
}
程序的运行结果是________。
( C )
4、运行下面程序时,若从键盘输入数据为 "123" , 则输出结果是 _________.
#include "stdio.h"
void main()
{
int num,i,j,k,place;
scanf("%d",&num);
if (num>99) place=3;
else if(num>9) place=2;
else place=1;
i=num/100;
j=(num-i*100)/10;
k=(num-i*100-j*10);
switch (place)
{
case 3: printf("%d%d%d\n",k,j,i);
break;
case 2: printf("%d%d\n",k,j);
break;
case 1: printf("%d\n",k);
}
}
( A )
5、若i、j已定义为int型,则以下程序段中内循环的总的执行次数是________。 for(i=5;i>0;i--) for(j=0;j<4;j++)…
( B )
6、有如下程序
#define N 3
#define M N+2
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( B )
7、有以下程序
main( )
{
int c=5,x;
scanf("%d",&x);
switch(x+1)
{
case 6: c++;
case 8: ++c;
break;
default:c+=3;
}
printf("%d",c);
}
程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
( D )
8、以下叙述中正确的是________。
( D )
9、以下叙述正确的是()。
( C )
10、以下程序段中,能够正确地执行循环的是()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、若已定义:int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0≤i≤9,则对a数组元素的引用不正确的是________。
( C )
2、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
( C )
3、以下一维数组 a 的正确定义是 __________ .
( B )
4、以下能对二维数组a进行正确初始化的语句是________。
( C )
5、下列程序段的功能是________。计算数组x中相邻两个元素的和,依次存放到 a 数组中,然后输出a数组。程序段中待填空的(1)和(2)的正确选项是________。int i;
int a[9], x[10];
for(i = 0; i < 10; i++)
{
scanf("%d", &x[i]);
}
for( (1) ; i < 10; i++ )
{
/* 此处待填空(1) */ a[i-1] = x[i] + (2) ;
/* 此处待填空(2) */
}
for(i = 0; i < 9; i++)
{
printf("%d ",a[i]);
}
printf("\n");
( B )
6、c语言中,数组名代表________。
( B )
7、下面的C程序完成的功能是________。
#define SIZE 5
void func(int data[SIZE]);
main()
{
int i,buf[SIZE];
printf(""Please input %d numbers:"",SIZE);
for(i=0;idata[j+1])
{
d=data[j];
data[j]=data[j+1];
data[j+1]=d;
}
}
( A )
8、下面说法正确的是________。
( C )
9、在以下定义中,标识符p________。 int (*p)[3];
( A )
10、若有如下定义和语句,且 0<=i<5,下面( )是对数值为 3 数组元素的引用
int a[]={1,2,3,4,5},*p,i;
p=a;
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述中不正确的是________。
( D )
2、以下正确的字符串常量是________。
( A )
3、下列哪个是c语言的有效标识符
( C )
4、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
( B )
5、字符串"xyz"在内存占用的字节数是______。
( C )
6、下面各语句行中,能正确进行给字符串赋值操作的语句行是______。
( D )
7、以下选项中,合法的 c 语言常量是________。
( A )
8、以下正确的字符串常量是________。
( A )
9、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
( C )
10、判断两个字符串是否相等,正确的表达方式是
六、函数/函数指针 (共10题,每题1分,共计10分)
( B )
1、下列关于c语言的说法错误的是________ 。
( B )
2、以下函数调用语句中含有_______个实参。 func((exp1,exp2),(exp3,exp4,exp5));
( C )
3、下列叙述中错误的是________。
( A )
4、关于宏定义命令,叙述正确的是________。
( A )
5、有以下程序:
main()
{
int x[]={1,3,5,7,2,4,6,0},i,j,k;
for(i=0;i<3;i++) for(j=2;j>=i;j--) if(x[j+1]>x[j])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<3;i++) for(j=4;j<7-i;j++) if(x[j]>x[j+1])
{
k=x[j];
x[j]=x[j+1];
x[j+1]=k;
}
for(i=0;i<8;i++) printf("%d",x[i]);
printf("\n");
}
程序运行后的输出结果是________。
( D )
6、判断字符串s1是否大于字符串s2,应当使用 。
( C )
7、有关c语言的主函数描述正确的是________。
( A )
8、以下说法错误的是________。
( D )
9、c语言函数的隐含存储类别是________。
( C )
10、以下叙述中错误的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述错误的是________。
( C )
2、下面说法正确的是________。
( C )
3、下列哪个语句是声明一个含有10个string对象的数组 ( )
( B )
4、若有函数 char*func(char *p) … return p; 则该函数的返回值是 ______。
( C )
5、以下能将字符串,you are luck!正确读入的语句组是________。
( C )
6、以下程序的输出结果是
typedef union {
long x[2];
int y[4];
char z[8];
} mytype;
mytype them;
main() {
printf("%d\n",sizeof(them));
}
( D )
7、下列字符串中可以用作c标识符的是________。
( A )
8、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是________。
( C )
9、printf 函数中用到格式符%5s ,其中数字5 表示输出的字符串占用5 列。如果字符串长度小于5,则输出按方式。
( A )
10、设有定义:int x=2,*p=&x; float=3.0; char z='c'; 则立即进行以下运算有安全隐患的是________。
八、结构体 (共10题,每题1分,共计10分)
( B )
1、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
( D )
2、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
( B )
3、若有下列说明和语句,则对结构体变量st中成员i的引用方式不正确的是________。
struct stu
{
int i;
int name;
} st,*p;
p=&st;
( C )
4、设
struct data
{
int a;
float b;
} c,*p=&c;
,引用正确的是________。
( C )
5、变量a所占的内存字节数是______。
union u{
char st[4];
int i;
long l;
};
struct A {
int c;
union u;
} a;
( A )
6、c语言中用于定义类的关键字是________。
( B )
7、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
( D )
8、有以下程序
#include <stdio.h>
main()
{
struct stu
{
char name[9];
char sex;
double score[2];
}
;
struct stu a={"zhao",'m',85.0,90.0},b={"qian",'f',95.0,92.0};
b=a;
printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]);
}
程序的运行结果是______。
( A )
9、定义共用体的关键字是________。
( A )
10、结构体类型的定义允许嵌套是指()。
九、程序题 (共10题,每题1分,共计10分)
( D )
1、以下程序的输出结果是________。
main( )
{
int x=11,y=11;
printf("%d%d\\n",x--,--y);
}
( D )
2、阅读下面的程序
#include<stdio.h>
main()
{
char c1,c2;
c1=getchar();
c2=c1+3;
printf("%c,%d\n",c2,c2);
}
已知'a'的ascii的值为65,如果从键盘上输入 d<回车> 则程序的运行结果是________。
( C )
3、有以下程序
void f(int v , int w)
{
int t;
t=v;
v=w;
w=t;
}
main( )
{
int x=1,y=3,z=2;
if(x>y) f(x,y);
else if(y>z) f(y,z);
else f(x,z);
printf("%d,%d,%d\n",x,y,z);
}
执行后输出结果是________。
( B )
4、下面程序是计算 n 个数的平均值 , 请填空 . _________
#include<stdio.h>
void main( )
{
int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&x);
avg=avg+______;
}
avg=________;
printf("avg=%f\n",avg);
}
( A )
5、设int a=4,b; 则执行b=a<<1; 语句后,b的结果是________。
( D )
6、以下程序的输出结果是______。
#include <stdio.h>
main()
{
int a=2,c=5;
printf("a=%%d,b=%%d\n",a,c);
}
( B )
7、有以下程序int a=4;
int f(int n)
{
int t=0;
static int a=5;
if(n%2)
{
int a=6;
t+=a++;
}
else
{
int a=7;
t+=a++;
}
return t+a++;
}
main()
{
int s=a,i=0;
for(;i<2;i++) s+=f(i);
printf("%d\n",s);
}
程序运行后的输出结果是______。
( A )
8、有以下程序
#include <stdio.h>
main()
{
int n, *p=null;
*p=&n;
printf("input n:");
scanf("%d",&p);
printf("output n:");
printf("%d\n",p);
}
该程序试图通过指针p为变量n读入数据并输出,但程序有多处错误,以下语句正确的是______。
( A )
9、下列程序执行后的输出结果是________。
main()
{
int x='f';printf("%c”,'A'+(x-‘a’+1));
}
( C )
10、有以下程序
#include <string.h>
main()
{
char p[20]={'a','b','c','d'},q[]="abc",r[]="abcde";
strcpy(p+strlen(q),r);
strcat(p,q);
printf("%d\n", strlen(p));
}
程序运行后的输出结果是______。
相关标签:
- C语言
- 山东中医药大学
- 期末