上海对外经贸大学往年C语言程序设计期末复习题
本试卷为上海对外经贸大学往年C语言程序设计期末复习题,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末复习题
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10)scanf("%d",);
}
应在下划线处填入的是________。
( B )
2、若变量已正确定义,有以下程序段
int i=0;
do
printf("%d,",i);
while(i++);
printf("%d",i) 其输出结果是________。
( A )
3、若有定义"int a=-5,b=7;",则表达式a%=(b%2)运算后,a的值为________。
( C )
4、设变量a、b、c、d和y都已正确定义并赋值。若有以下if语句: if(a<b) if(c==d)y=0; else y=1; 该语句所表示的含义是________。
( C )
5、下面程序段的功能是
#include <stdio.h>
main()
{
char s1;
s1=putc(getc(stdin),stdout);
}
( A )
6、下列字符串是标识符的是: 。
( C )
7、设有以下说明语句 struct stu
{
int a ;
float b ;
}
stutype ;
则下面的叙述不正确的是______。
( B )
8、以下对枚举类型名的定义中正确的是______。
( B )
9、若数组a定义为int[][]a=new int[3][4],则a是________。
( B )
10、在一个应用程序中有如下定义:int a[]= {1,2,3,4,5,6,7,8,9,10 },为了打印输出数组a的最后一个元素,下面正确的代码是________。
( C )
11、与十六进制数26ce等值的二进制数是________。
( B )
12、有以下程序:
main()
{
int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}},ij;
for(i=0;i<4;i++)
{
for(j=0;j<=i;j++) printf("%4c",’);
for(j=______;j<4;j++) printf("%4d",num[i][j]);
printf("\n");
}
}
若要按以下形式输出数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是 ______ 。
( A )
13、下列程序的运行结果是________。
#include<stdio.h>
void sub(int*s,int*y)
{
static int m=4: *y=s[m];
m--;
}
void main()
{
int a[]={1,2,3,4,5},k,x;
printf("\n");
for(k=0;k<=4;k++)
{
sub(a,&x);
printf("%d,",x);
}
}
( A )
14、有以下程序:
main()
{
char a,b,c,d;
scanf("%c,%c,%d,%d",&a,&b,&c,&d);
printf("%c,%c,%c,%c\n",a,b,c,d);
}
若运行时从键盘上输入:6,5,65,66<回车>,则输出结果是 ______。
( B )
15、有以下程序
main()
{
char a1='m',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是______。
( C )
16、若有定义:
struct keyword
{
char key[20];
int id;
}
kw[] = {"void", 1, "char", 2, "int", 3, "float", 4, "double", 5 };
则printf("%c,%d\n", kw[3].key[0], kw[3].id);
语句的输出结果为________。
( B )
17、若有以下定义语句char c1=’b’, c2=’e’;
printf("%d,%c\n",c2-c1,c2-‘a’+’a’);
则输出结果是________。
( A )
18、若变量均已正确定义并赋值,以下合法的c语言赋值语句是________。
( D )
19、以下对一维数组a 的正确说明是________。
( B )
20、以下程序的执行结果是 main()
{ int x = 0, s = 0;
while( !x != 0 ) s += ++x;
printf( "%d ",s ); }
二、填空题 (共10题,每题2分,共计20分)
1、有以下程序
#include<stdio.h>
main() {
int i,n[]={0,0,0,0,0};
for (i=1;i<=4;i++)
{
n[i]=n[i-1]*3+1;
printf("%d ",n[i]);
}
}
程序运行后的输出结果是________。
2、若有语句double x=17; int y; ,当执行y=(int)(x/5)%2;之后y的值是 ________。
3、共用体类型变量的定义关键字是________。
4、设a=3,b=2,c=1,则a>b>c的值为________。
5、在循环的过程中,有时要提前中止循环,通常采用 () 语句。
6、在c语言中,若确实不要求返回函数值,则应将函数定义为( )类型。
7、在c语言中,可以用/*…*/对c程序中的任何部分作______。
8、以下程序的输出结果是 ________ 。
#include <stdio.h>
main()
{
int k=1,s=0;
do
{
if((k%2)!=0) continue;
s+=k;
k++;
}
while(k>10);
printf("s=%d\n",s);
}
9、以下程序运行后的输出结果是 ________
main()
{
int i,j,a[][3]={1,2,3,4,5,6,7,8,9};
for(i=0;i<3;i++) for(j=i+1;j<3;j++) a[j][i]=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++) printf("%d ",a[i][j]);
printf("\n");
}
}
10、C 语言中,一个函数一般由两个部分组成,它们是______和函数体。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:字符串排序。如下: 请输入3个字符串,每个字符串以回车结束!: b a t 排序后的结果为: a b t
2、已知学生的记录由学号和学习成绩构成N名学生的数据已存入a结构体数组中。试编写函数fun函数的功能是找出成绩最低的学生记录通过形参返回主函数规定只有一个最低分在主函数中调用fun,使用结构体实现
3、用*号输出字母C的图案。
相关标签:
- C语言
- 上海对外经贸大学
- 期末复习题