成都中医药大学往年计算机C语言期末题库
本试卷为成都中医药大学往年计算机C语言期末题库,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言期末题库
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、若有以下定义和语句:"double r=99,*p=&r; *p=r;",则以下正确的叙述是________。
( C )
2、有以下定义语句,编译时会出现编译错误的是________。
( C )
3、以下叙述错误的是________。
( B )
4、现有定义int a; double b; float c; char k; 则表达式a/b+c-k值的类型为
( A )
5、下列属于条件运算符的是________。
( D )
6、表达式a+=a-=a=9的值是________。
( D )
7、下列选项中合法的赋值语句是________。
( A )
8、已知[x/2]补=c6h,计算机的机器字长为8位二进制编码,则[x]补= (11) 。
( B )
9、若题中各变量已正确定义并赋值,下面符合c语法的表达式是________。
( A )
10、设有声明语句:char a='\72'; 则变量a________。
( A )
11、表达式0x13^0x17的值是________。
( C )
12、下列标识符,不合法的是________。
( B )
13、有如下程序段int *p,a=5,b=1; p=&a; a=*p+b; 执行该程序段后,a的值为______。
( C )
14、以下叙述中正确的是________。
( D )
15、以下程序段中,变量 c 的二进制值是________ char a=2,b=4,c; c=a+b<<2;
( D )
16、若希望当a的值为奇数时,表达式的值为真; a的值为偶数时,表达式的值为假,则以下不能满足要求的表达式是________。
( C )
17、能正确表示:当x 的取值范围在[1,10] 或[100, 110]内为真,否则为假的表达式是________。
( D )
18、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为__________。
( D )
19、下列( )表达式的值为真,其中 a=5;b=8;c=10;d=0
( C )
20、以下叙述中正确的是()。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( A )
2、下列程序的输出结果是________。
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0: case 3:a+=1;
case 1;
case 2:a+=2;
default:a+=3;
}
}
printf("%d",a);
}
( C )
3、有以下程序
main( )
{
char k;
int i;
for(i=1;i<3;i++)
{
scanf("%c",&k);
switch(k)
{
case ‘0’: printf("another\n");
case ‘1’: printf("number\n");
}
}
}
程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是________。
( C )
4、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
( C )
5、switch语句中表达式(expression)的值不允许用的类型是________。
( A )
6、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
( A )
7、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
( C )
8、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
( B )
9、有以下程序
#include <stdio.h>
main ()
{
int a = 5, b = 4, c = 3, d = 2;
if (a > b > c)
printf ("%d\n", d);
else if ((c - 1 >= d) == 1)
printf ("%d\n", d + 1);
else
printf ("%d\n", d + 2);
}
执行后输出的结果是________。
( C )
10、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下面程序段的输出结果是 __________.
x=3;
do
{
y=x--;
if (!y)
{
printf("*");
continue;
}
printf("#");
}
while(x=2);
( B )
2、有如下程序
#include<stdio.h>
void main()
{
int x=23;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是 _________。
( B )
3、下列选项中均属于c语言合法的标识符是________。
( D )
4、结构化程序设计方法的结构不包括________。
( D )
5、下列叙述中正确的是________。
( C )
6、有以下程序:
#include <stdio.h>
main()
{
int i, j, m=1;
for(i=1; i<3; i++)
{
for(j=3; j>0; j--)
{
if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n", m);
}
程序运行后的输出结果是______。
( B )
7、以下程序的功能是计算s=1+12+123+1234+12345。
#include <stdio.h>
main()
{
int t=0,s=0,i;
for(i=1;i<=5;i++) {
t=i+_____;
s=s+t;
}
printf("s=%d\n",s);
}
则______部分是________。
( D )
8、程序设计语言中________。
( D )
9、有以下程序段int n=0,p;
do
{
scanf("%d",&p);
n++;
}
while(p!=12345&&n<3);
此处do-while循环的结束条件是______。
( D )
10、下列程序的输出为________。
main()
{
int y=10;
while(y--);
printf("y=%d\n",y);
}
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义二维数组的是________。
( C )
2、以下不能对二维数组a进行正确初始化的语句是________。
( B )
3、若有说明:int a[][3]={{1,2,3},{4,5},{6,7}};则数组a的第一维的大小为: ( )
( C )
4、以下一维数组 a 的正确定义是 __________ .
( A )
5、数组a[0…5,0…6]每个元素占5个单元,将其按列优先次序存储在起始地址为1000的连续内存单元中,则元素a[5][5]的地址为________。
( A )
6、数组a[1..5,1..6]的每个元素占5个单元,将其按行优先顺序存储在起始地址为1000的连续的内存单元中,则元素a[5,5]的地址为 (15) 。
( B )
7、对以下说明语句的正确理解是________。 int a[10]= {6,7,8,9,10 };
( A )
8、设有数组定义:char array[]="china"; 则数组array所占的空间为________。
( C )
9、有以下程序
main()
{
char s[]="\n123\\";
printf("%d,%d\n",strlen(s),sizeof(s));
}
执行后输出结果是________。
( B )
10、若有下列定义和语句,则对 a 数组元素的非法引用是()。 int a[2][3], (*pt)[3]; pt=a;
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下关于字符串的叙述中正确的是________。
( B )
2、若输入字符串:abcde<回车>,则以下while循环体将执行多少次。 while((ch=getchar())!='e') printf("*");
( B )
3、设宏定义#define PI 3.1415926,用宏名PI替换的是________。
( D )
4、下列字符串中,不可以用作c标识符的是________。
( B )
5、下列选项中,值为1的表达式是________。
( B )
6、下列选项中c语言中不合法的字符串常量的是________。
( D )
7、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
( A )
8、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( C )
9、顺序执行下列程序语句后,则b的值是 string a="hello"; string b=a.substring(0,2);
( B )
10、以下语句中,不能实现回车换行的是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( A )
1、有以下函数: char fun(char*p)
{
return p;
}
该函数的返回值是________。
( D )
2、对以下程序,正确的说法是 __________. sub (char x,char y)
{
int z;
z=x%y;
return z;
}
void main( )
{
int g=5,h=3,k;
k=sub(g,h);
printf("%d\n",k);
}
( C )
3、若定义的函数为float* fun()……,则函数的返回值是________。
( A )
4、若有以下定义和语句: char*s1="12345",*s2="1234"; printf("%d\n",strlen(strcpy(s1,s2)));
则输出结果是______。
( A )
5、若有定义:char *st="how are you"; 下列程序段中正确的是________。
( B )
6、下列函数中,用于向控制台输出信息的是?
( A )
7、以下求 n! 的函数可以正确计算21!,正确的选项是________。_______ fact(int n)
{
int i;
_______ product;
product = 1;
for (i = 1; i <= n; i++)
{
product = product * i;
}
return product;
}
( B )
8、调用函数f(27)的输出结果是________。
void f(int n)
{
if(n<5) printf("%d", n);
else
{
printf("%d", n%5);
f(n/5);
}
}
( C )
9、若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的c语言表达式是______。
( B )
10、若执行 fopen 函数时发生错误,则函数的返回值是()。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下程序段完全正确的是________。
( B )
2、下列定义数组的语句中,正确的是________。
( A )
3、是构成c语言程序的基本单位。
( C )
4、以下( )不是c语言中用于结构化程序设计的三种基本结构之一。
( B )
5、在函数说明时,下列不必要的是________项。
( D )
6、以下叙述正确的是________。
( A )
7、设有说明语句如下: static char str[]="beijing"; 若执行下列输出语句: printf("%d\n",strlen(strcpy(str,"china")));
则输出结果为________。
( C )
8、数组 int a[3][4]; 其中错误的数组引用为________。
( A )
9、若使用一维数组名作函数实参,则以下正确的说法是________。
( C )
10、以下叙述中错误的是________。
八、结构体 (共10题,每题1分,共计10分)
( C )
1、有以下程序
typedef struct
{
char name[9];
char sex;
float score [2];
} stu;
stu f(stu a) {
stu b={"zhao", 'm', 85.0, 90.0};
int i;
strcpy(a.name, b.name);
a.sex=b.sex:;
for(i=0;i<2;i++) a.score[i]=b.score[i];
return a:
}
main() {
stu c=
{
"qian", 'f', 95.0, 92.0
};
stu d=f(c);
printf("%s, %c, %2.0f, %2.0f", d.name, d.sex, d.score[0], d.score[1]); ) 程序的运行结果是________。
( D )
2、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
( B )
3、c语言中的基本数据类型是________。
( C )
4、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。
struct st
{
int x;
int y;
int z;
}
struct worker
{
char name[20];
char sex;
struct st birth;
} p;
( A )
5、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
( C )
6、以下程序运行后的输出结果是
#include<stdio.h>
struct st
{
int x, y;
} data[2] = {{1, 10},{2, 20}};
main ()
{
struct st *p = data;
printf ("%d,", p->y);
printf ("%d\n", (++p)->x);
}
( C )
7、下面程序的输出结果为________。
struct st
{
int x;
int *y;
}
*p;
int dt[4]={10,20,30,40};
struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]};
void main()
{
p=aa;
printf("%d ", ++p->x);
printf("%d ", (++p)->x);
printf("%d ", ++(*p->y));
}
( A )
8、有以下程序
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;
int i;
float sum=0;
p=s+1;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%.3f\n",sum);
}
程序运行后的输出结果是___________。
( D )
9、以下程序的输出结果是______。
struct har
{
int x,y;
struct har *p;
}
h[2];
main()
{
h[0].x=1;
h[0].y=2;
h[1].x=3;
h[1].y=4;
h[0].p=&h[1];
h[1].p=h;
printf("%d%d\n",(h[0].p)->x,(h[1].p)->y);
}
( D )
10、以下对结构体变量stu1中成员age的非法引用是________。
struct student
{
char name[10];
int age ;
}
stu1 ,*p;
p=&stu1;
九、程序题 (共10题,每题1分,共计10分)
( A )
1、有以下程序:
#define f(x)X*x*x
main()
{
int a=3,S,t;
s=f(a+1);
t=f((a+1));
printf("%d,%d\n",S,t);
}
程序运行后的输出结果是________。
( C )
2、要输出下面的图形,请完善程序。
#include <stdio.h>
main( )
{
int i,j,k;
for(i=1;i<=6;i++)
{
for(j=1;j<=20-2*i;j++) printf(" ");
for(k=1;________;k++) printf("%2d",i);
________
}
}
( D )
3、有以下程序 #include<stdio.h>
void fun(int x) {
if(x/2>1)
fun(x/2);
printf("%d",x);
}
main() {
fun(7);
printf("\n");
} 程序运行后的输出结果是________。
( D )
4、有以下程序
#include <stdio.h>
main()
{
int a[ ]={1,2,3,4} ,y,*p=&a[3];
--p;
y=*p;
printf("y=%d\n",y);
}
程序的运行结果是________。
( C )
5、阅读下面的程序
#include<stdio.h>
void main()
{
int i,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
printf("%d,%d,%d,%d",i,j,m,n);
}
程序的运行结果是 ____________.
( B )
6、以下程序的输出结果是________。
# define SQR (X) X*X
main( ) {
int a=16,k=2,m=1;
a/=SQR(k+m)/SQR(k+m);
printf("%d\n",a);
}
( A )
7、有程序:
void fun(int a,int b,int c)
{
a=456;
b=567;
c=678;
}
main( )
{
int x=10,y=20,z=30;
fun(x,y,z);
printf("%d,%d,%d\n",z,y,x);
}
输出结果是________。
( A )
8、下面程序段的输出结果是________。
#include<stdio.h>
main()
{
float x=1.236547;
printf("%f\n",(int)(x*1000+0.5)/(float)1000);
}
( D )
9、有以下程序
void f(int x,int y)
{
int t;
if(x<y)
{
t=x;
x=y;
y=t;
}
}
main()
{
int a=4,b=3,c=5;
f(a,b);
f(a,c);
f(b,c);
printf("%d,%d,%d\n",a,b,c);
}
执行后输出的结果是______。
( B )
10、下列程序的输出结果是________。 int b=2;
int func(int *a)
{
b += *a;
return(b);
}
main()
{
int a=2, res=2;
res += func(&a);
printf("%d \n",res);
}
相关标签:
- C语言
- 成都中医药大学
- 期末题库