东华理工大学往年C语言程序设计
本试卷为东华理工大学往年C语言程序设计,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计
一、单项选择题 (共20题,每题2分,共计40分)
( B )
1、已知字母a的ascⅱ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是________。
( B )
2、下列表达式的结果正确的是________。 int aa,bb,cc,dd; aa=bb=cc=dd=1; (aa+1==2) ? bb=aa+2 : aa+3
( A )
3、在c语言中对于实型数组,其每个数组元素的类型是________。
( C )
4、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( A )
5、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是________。
( C )
6、以下各选项企图说明一种新的类型名,其中正确的是______。
( B )
7、下列四个叙述中,错误的是_______。
( D )
8、若已定义: int a[]= { 0,1,2,3,4,5,6,7,8,9 },*p=a,i; 其中0≤i≤9,则对a数组元素不正确的引用是________。
( D )
9、给定下面的代码: int i=1,j=10;
do
{
if(i++>--j) continue;
}
while(i<5) 执行完之后,i与j的值分别是多少 ( )
( D )
10、合法的数组定义是________。
( A )
11、以下程序的运行结果是________。
#include<stdio.h>
main()
{
int a=3,b=4,c=8,d=4,m=1,n=3;
printf("%d\n",(m=a>b)&&(n=c>d));
}
( C )
12、以下程序的输出结果是
#include<stdio.h>
struct st
{
int x;
int *y;
}
*p;
int dt[4]= {10,20,30,40 };
struct st aa[4]={50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main()
{
p=aa;
printf("%d\n",++(p->x));
}
( D )
13、有以下程序:
#include <stdio.h>
main()
{
int x=1, y=0;
if(!x)y++;
else if(x==0) if(x)y+=2;
else y+=3;
printf("%d\n", y);
}
程序运行后的输出结果是______。
( B )
14、有以下程序
#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 )
15、以下关于链式存储结构的叙述中哪一条是错误的?
( C )
16、阅读以下函数fun(char *sl,char *s2)
{
int i=0;
while(sl[i]==s2[i]&&s2[i]!='\0') i++;
return(sl[i]=='\0'&&s2[i]=='\0');
}
此函数的功能是______。
( C )
17、有以下程序 int fun(int x[],int n)
{
static int sum=0,i;
for(i=0;i<n;i++) sum+=x[i];
return sum;
}
main()
{
int a[]=
{
1,2,3,4,5
}
,b[]=
{
6,7,8,9
}
,s=0;
s=fun(a,5)+fun(b,4);
printf("%d ",s);
}
程序执行后的输出结果是______。
( A )
18、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
( B )
19、下面程序输出的结果为________。
#include <stdio.h>
int main()
{
int s=3;
switch(s)
{
case 5: printf("我");
break;
case 4: printf("是");
case 3: printf("好");
case 2: printf("学");
break;
default: printf("生");
}
}
( A )
20、下列数组说明中,正确的是()。
二、判断题 (共10题,每题2分,共计20分)
( F )
1、c语言认为变量test和test是相同的。
( T )
2、字符常量与字符串是两种不同的常量。
( F )
3、continue语句不仅可以出现在循环体语句中,还可以出现在其他任何地方。
( T )
4、c语言的标识符由字母、数字和下划线组成,其中第一个字符必须是字母或下划线。
( T )
5、c语言中switch语句可以用if语句完全代替.( )
( F )
6、函数一次可以返回两个以上的值。
( T )
7、c 语言允许用字符串的方式对数组作初始化赋值。
( F )
8、要使用标准输入、输出函数,正常情况下应该在文件的开头加上以下内容: #include<graphics.h>或#include"graphics.h"。
( F )
9、字符数组定义后,可以用赋值语句将一字符串常量或字符数组直接赋给一个字符数组。
( F )
10、以"a"方式打开一个文件时,文件指针指向文件首。
三、填空题 (共5题,每题4分,共计20分)
1、c语言本身不提供输入输出语句,输入和输出操作是由________来实现的。
2、有以下程序段,且变量已正确定义和赋值 for(s=1.0,k=1;k<=n;k++) s=s+1.0/(k*(k+));
printf("s=%f\n\n",s);
请填空,使下面程序段的功能与之完全相同 s=1.0;
k=1;
while([10] )
{
s=s+1.0/(k*(k+1));
[11] ;
}
printf("s=%f\n\n",s);
3、结构化程序设计的3种基本结构是:顺序结构、_______结构、循环结构,这三种基本结构构成了复杂的c语言程序。
4、C语言替换字符的函数是什么?
5、C标准库函数中,字符串的处理函数包含在______头文件中,数学函数包含在math.h头文件中。
四、程序分析题 (共4题,每题5分,共计20分)
1、有以下程序
#include<stdio.h>
main() {
int n[2],i,j;
for(i=0;i<2;i++) n[i]=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++) n[j]=n[i]+1;
printf("%d\n",n[1]);
} 程序运行后的输出结果是________。
2、以下程序的输出结果是________。
main()
{
int a=-1, b;
if(a<0) b=2*a+1;
else b=2*a-1;
printf("%d",b);
}
3、写出下列程序的运行结果。
main()
{
int n;
for(n=3; n<=10; n++)
{
if(n%6==0) break;
printf("%d",n);
}
}
4、下面程序的功能是求1000 以内的所有完全数。说明:一个数如果恰好等于它的因子之和(除自身外) ,则称该数为完全数。例如: 6=1+2+3 。
#include<stdio.h>
main()
{
int a,i,m;
for(a=1;a<=1000;a++)
{
for( 【1】________;i<=a/2;i++)
if(!(a%i)) 【2】________;
if(m==a) printf("%4d",a);
}
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:将字符数组a中下标值为奇数的元素从小到大排列,其它元素不变 例如:当a数组中的字符串为:"clanguage"时,程序的输出结果为:cgalgnaue()
2、编写程序: 企业发放的奖金根据利润提成。 利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%; 40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%; 高于100万元时,超过100万元的部分按1%提成。 从键盘输入当月利润I,求应发放奖金总数?
3、若有以下银行卡信息:
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
相关标签:
- C语言
- 东华理工大学