上海电机学院C语言
本试卷为上海电机学院C语言,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、下列叙述中正确的是________。
( D )
2、以下程序段的输出结果是________。
int k,j,s;
for(k=2;k<6;k++,k++)
{
s=1;
for(j=k;j<6;j++) s+=j;
}
printf("%d\n",s);
( B )
3、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( C )
4、以下函数按每行8个输出数组中的数据
void fun( int *w, int n)
{
int i;
for(i=0;i<n;i++)
{
________ printf("%d",w[i]);
}
printf("\n");
}
下列划线处应填入的语句是________。
( B )
5、有以下程序
#include <stdio.h>
struct ord
{
int x ,y;
}
dt[2]= {1,2,3,4 };
main()
{
struct ord *p=dt;
printf("%d,",++p->x);
printf("%d\n",++p->y);
}
程序的运行结果是________。
( A )
6、变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是________。
( C )
7、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
( A )
8、以下程序输出的结果是 __________.
#include <stdio.h>
void main( )
{
int a[ ]={1,2,3,4,5},i,j,s=0;
for(i=0;i<5;i++) s=s*10+a[i];
printf("s=%d\n",s);
}
( B )
9、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
( B )
10、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( D )
11、若有表达式(w)(--x):(++y),则其中与w等价的表达式是________。
( C )
12、若所用变量都已正确定义,则在以下选项中,非法的表达式是________。
( C )
13、有以下函数
int fun(char *s) {
char *t=s;
while(*t++);
return(t-s)
}
该函数的功能是______。
( A )
14、以下叙述中正确的是______。
( B )
15、设有以下程序段 int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
则
( B )
16、若有定义:int *p[3]; ,则以下叙述中正确的是______。
( A )
17、有以下程序:
main()
{
int k=5;
while(--k)printf(”%d”,k-=3);
printf(”n”);
}
执行后的输出结果是________。
( B )
18、c语言源程序名的后缀是________。
( A )
19、下面不能正确进行字符串赋值操作的语句是________。
( D )
20、对于数学式x /2a,下面正确的c 语言表达式是________。
二、填空题 (共10题,每题2分,共计20分)
1、有以下程序
#include <stdio.h>
main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int b[3]={0},i;
for(i=0;i<3;i++) b[i]=a[i][2]+a[2][i];
for(i=0;i<3;i++) printf("%d",b[i]);
printf("\n");
}
程序运行后的结果是________。
2、c语言中对文件读写之前必须先打开文件,文件的打开是通过调用________函数来实现。
3、在c语言中,逻辑运算符中的"&&"称为________。
4、若有定义:int a=3; 表达式a/2.0+'b'-'a'的值是【1】。
5、c语言中与指针有关的两个运算符是&与________。
6、若s 是int 型变量,则表达式s%2+(s+1)%2 的值为【】。
7、编译预处理包括( )、文件包含、条件编译等。
8、函数f 的形参a 为一个10×10 的二维数组, n 的值为5,以下程序段的运行结果为________。f(int a[][20], int n)
{
int i,j,k;
j=n/2+1;
a[1][j]=1;
i=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<1&&j>n)
{
i=i+2;
j=j-1;
}
else
{
if(i<1) i=n;
if(j>n) j=1;
}
if(a[i][j]==0) a[i][j]=k;
else
{
i=i+2;
j=j-1;
a[i][j]=k;
}
}
}
main()
{
int a[20][20]={0},n,i,j;
scanf("%d",&n);
f(a,n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)printf("%3d",a[i][j]);
printf("\n");
}
}
9、请补充main()函数,该函数的功能是:把一个整数插入一个已经按从小到大排序的数组中。插入后,数组仍然有序。 例如,在数组bb[M]={10 20 30 40 50 60 70 80 85 95}
中插入75,结果为 bb[M]={10 20 30 40 50 60 70 75 80 85 95}
注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在main()函数的横线上填入所编写的若干表达式或语句。 试题程序:
#define M 10
void main()
{
int i,j;
int n;
int bb[M+1]={10,20,30,40,50,60,70,80,85,95};
system("CLS");
printf("\nlnput n n");
scanf("%d",&n);
printf("\nn=%d",n);
printf("\n***original list***\n");
for(i=0;i<M;I++) printf("%4d",bb[i]);
for(i=0;i<M;I++)
{
if(n<=bb[i])
{
for(j==M; ________ ;j--) ________ ;
bb[j]=n;
________ ;
}
}
if(i==M) bb[i]=n: printf("\n****new list****\n");
for(i=0;i<M+1;I++) printf("%4d",bb[i]);
}
10、以下程序对输入的一个小写字母,将字母循环后移5个位置后输出。如‘a’变成‘f’,‘w’变成‘b’。请在 内填入正确的内容。
#include <stdio.h>
void main()
{
char c;
c=getchar();
if(c>=’a’&&c<=’u’) ;
else if(c>=’v’&&c<=’z’) ;
putchar(c);
}
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:计算sum=1-1/3+1/5-1/7+…+1/19
2、编写程序:用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。
#include<stdio.h>
void main()
{
char c1, c2;
printf("请输入两个字符给c1和c2:\n");
_________________________________
_________________________________
printf("用putchar函数输出结果为:\n") ;
_________________________________
_________________________________
printf("\n用printf函数输出结果为:\n") ;
_________________________________
}
3、题⽬描述 万⾥⼗佳歌⼿⽐赛终于开始了,评委席坐了N(N⼤于等于3,并且N⼩于80)个评委,他们商量了很久,终于找出⼀个公正合理的评分⽅法。每次歌⼿唱完后,每个评委⾃⼰打⼀个分,然后在N个评委的打分中,去掉⼀个最⾼分,⼀个最低分。然后再把剩下的评委的打分求平均值~ 。 但是问题是他们嫌每次拿计算器按实在太烦。作为⼀名计算机专业学⽣~你⽤个程序帮帮他们搞定吧。 输⼊ 输⼊有多组数据。每组2⾏,第⼀⾏是⼀个N,代表有N个评委。然后第⼆⾏有N个数,每个数⽤空格隔开,代表每个评委的打分。 当输⼊的N为0的时候结束输⼊。 输出 对于每组输⼊,输⼊最终这个选⼿的得分(⼩数点后⾯保留2位有效数字)。 样例输⼊ 3 74 36 34 7 16 97 27 26 74 96 88 样例输出 36.00 62.20
相关标签:
- C语言
- 上海电机学院