河南中医药大学C语言程序设计练习
本试卷为河南中医药大学C语言程序设计练习,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计练习
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、以下叙述中正确的是________。
( B )
2、以下只有在使用时才为该类型变量分配内存的存储类型说明是________。
( D )
3、c语言对嵌套的if语句的规定是:else总是与 配对。
( A )
4、定义如下变量和数组: int i; int x[3][3]={ 1,2,3,4,5,6,7,8,9 } 则下面语句的输出结果是________。 for(i=0;i<3;i++) printf("%d",x[i][2-1]);
( C )
5、有以下程序
#include<stdio.h>
main() {
int s,t,a=10;
double b=6;
s=sizeof(a);
t=sizeof(b);
printf("%d,%d\n",s,t);
} 在vc6平台上编译运行,程序运行后的输出结果是________。
( B )
6、以下程序的输出结果是
main()
{
int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;
for(i=0;i<3;i++) for(j=i;j<=i;j++) t=t+b[i][b[j][j]];
printf("%d\n",t);
}
( D )
7、下面程序的输出是______。
main ()
{
struct cmplx
{
int x ;
int y ;
}
cnum[2]={1 , 3 , 2 , 7};
printf ( "%d\n" , cnum[0].y/cnum[0].x*cnum[1].x );
}
( B )
8、t为int类型,进入下面的循环之前,t的值为0。while(t=1) {...}则以下叙述中,正确的是________。
( C )
9、若有说明语句:int i,x[3][4]; 则不能将x[1][1]的值赋给变量i的语句是______。
( B )
10、有下列程序:
main()
{
int i,j;
for(i=1;i<4;i++)
{
for(j=i;j<4;j++) printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
}
程序运行后的输出结果是________。
( D )
11、以下能正确定义数组并正确赋初值的选项是______。
( A )
12、若有定义 int a[]={10,20,30 },*p=a; ,当执行p++; 后,下列说法错误的是______。
( D )
13、表示关系1<=x<=100的c语言表达式为________。
( B )
14、有以下程序
void f (int b[])
{
int i;
for(i=2;i<6;i++) b[i]* =2;
}
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
f(a);
for(i=0;i<10;i++) printf("%d,",a[i]);
}
程序运行后的输出结果是______。
( B )
15、以下叙述中正确的是________。
( C )
16、设 char *s="\ta\017bc"; 则指针变量s指向的字符串所占的字节数 是________。
( A )
17、已定义两个字符数组a,b,则以下正确的输入格式 是________。
( C )
18、定义结构体的关键字是________。
( D )
19、以下选项中正确的 c 语言常量是________。
( D )
20、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);
为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当 是________。(注:┗┛表示空格)
二、判断题 (共10题,每题2分,共计20分)
( F )
1、使用不带参数的for(;;)语句可以正常控制循环。
( T )
2、在c语言中,一行可以书写多个语句
( F )
3、局部变量只有当它所在的函数被调用时才会被使用,当函数调用结束时局部变量还会一直存在。
( T )
4、main函数是c语言的主函数。
( F )
5、在定义数组时,什么时候都不可以将该数组的维数省略。
( F )
6、若有说明语句char *p= "it is mine "则 p 变量中存放的是整个字符串
( T )
7、在c语言中,当一个逻辑表达式的值为"假"时,该表达式的值一定是 0 ( )
( F )
8、在标准c中, for 语句后的三个表达式可以是任意类型的表达式。
( F )
9、随机操作只适用于二进制文件。
( F )
10、函数的形参可以是常量,变量或表达式
三、填空题 (共5题,每题4分,共计20分)
1、在循环中,continue语句与break语句的区别是:continue语句是语句的区别是:continue语句是 ________ ,break 是 ________ 。
2、在c语言中,格式输入库函数为________,格式输出库函数为________。
3、以下程序的输出结果是________。
main()
{
int x=5,y=6;
printf("%daa%d",++x,y――);
}
4、定义二维数组int a[3][5]; ,那么该数组中的第6个元素的访问形式为 ______。27. 在程序运行过程中,其值能被改变的量称为________。
5、int x=1,y=1,z=1; x+=y+=z; 则表达式x
四、程序分析题 (共4题,每题5分,共计20分)
1、有以下程序,请填空____,程序的执行结果是____
main( )
{
int x=5,y;
y=++x*++x;
printf("y=%d\\n",y);
}
float fun (float)
main
{
nfloat x, y;
int flag;
printf("enter x:");
scanf(" %f ", &x);
flag=fun(x);
if (________) printf("x=%f is out of range.\n", x);
else printf("x=%f,y=%f\n", x, fun(x) );
}
________fun(float x)
{
nfloat s;
if ( abs(x)>1 ) return (2);
else
{
s=sqrt (1-x*x);
________;
}
}
2、以下程序的输出结果是________ 。
main()
{
int a[3][3]=
{{1,2,9},{3,4,8},{5,6,7}},i,s=0;
for(i=0;i<3;i++) s+=a[i][i]+a[i][3-i-1];
printf("%d\n",s);
}
3、下面程序的运行结果是________。
main()
{
int i,f[10];
f[0]=f[1]=1;
for(i=2;i<10;i++)f[i]=f[i-2]+f[i-1];
for(i=0;i<10;i++)
{
if(i%4==0) printf("\n");
printf("%3d",f[i]);
}
}
4、请阅读并分析以下程序,该程序的输出结果是:
#include <stdio.h>
main( )
{
int n[3][3], i, j;
for(i=0;i<3;i++ )
for(j=0;j<3;j++ )n[i][j]=i+j;
for(i=0;i<2;i++ )
for(j=0;j<2;j++ )n[i+1][j+1]+=n[i][j];
printf("%d\n", n[i][j]);
}
五、编程题 (共3题,每题0分,共计50分)
1、若有以下银行卡信息:
struct card{
int id;//银行卡号
int bonus; //金额
};
请编写程序,从键盘输入5条银行卡记录,使用结构体数组存
储这些数据,并按金额升序排序,输出排序后的结果。
【输入形式】5条银行卡记录分行输入,每行数据用空格间隔
【输出形式】分5行输出数据,每行数据均使用空格间隔
【输入样例】
1001 20
1002 80
1003 50
1004 10
1006 40
【输出样例】
1004 10
1001 20
1006 40
1003 50
1002 80
2、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
3、编程判断输入的字符串是否为“回文”。所谓“回文”是指顺读和倒读都一样,如abcba。
相关标签:
- C语言
- 河南中医药大学
- 练习