安徽工业大学历年C语言程序设计期末精选样卷
本试卷为安徽工业大学历年C语言程序设计期末精选样卷,题目包括:单项选择题,填空题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,结构体,程序题。
C语言程序设计期末精选样卷
一、单项选择题 (共20题,每题2分,共计40分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( B )
2、当调用函数时,实参是一个数组名,则向函数传送的是 _______ 。
( D )
3、有如下定义
struct person
{
char name[9] ;
int age ;
};
struct person class[10]={" johu" , 17 , "paul" , 19 , "mary" , 18 , "adam" , 16};
根据上述定义,能输出字母 m 的语句是______。
( B )
4、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( B )
5、在下面关于指针的说法中,错误的一条是________。
( D )
6、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
( C )
7、以下程序的输出结果是________。
#include <stdio.h>
void swap(int*a, int *b)
{
int*t;
t=a;
a=b;
b=t;
}
main()
{
int i=3, j=5, *p=&i, *q=&j;
swap(p, q);
printf(1%d %d , *p, *q);
}
( C )
8、若变量c为char类型,则能正确判断出c为大写字母的表达式是________。
( C )
9、若定义下列结构体,结构体变量p的出生年份赋值正确的语句是________。
struct st
{
int x;
int y;
int z;
}
struct worker
{
char name[20];
char sex;
struct st birth;
} p;
( D )
10、在64位高档微机中,一个字长所占的二进制位数为________。
( A )
11、有以下程序:
#define P 3
void F(int x)
{
return(P*x*x);
}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是______。
( B )
12、设a为整型变量,下列选项中不能正确表达数学关系:10<a<15________。
( B )
13、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch-32):ch上面表达式的值是______。
( C )
14、以下程序的输出结果是______。
#include <stdio.h>
main()
{
int i;
for(i=1;i<5;i++)
{
if(i%2) printf("*");
else continue;
printf("#");
}
printf("$\n");
}
( C )
15、以下for语句构成的循环执行了______次。
#include <stdio.h>
#define N 2
#define M N+1
#define NUM (M+1)*M/2
main()
{
int i,n=0;
for(i=1;i<=NUM;i++)
{
N++;
printf("%d",n);
}
printf("\n");
}
( A )
16、在c语言中,如果下面的变量都是int类型,则输出的结果是________。 sum=5,p=5;
p=sum++,p++,++p;
printf("%d\n",p);
( B )
17、下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空。
#include <stdio.h>
main()
{
int a, b, t;
scanf("%d%d", &a, &b);
while (_________)
{
if (a > b)
{
t = a;
a = b;
b = t;
}
printf("%d,%d\n", a, b);
scanf("%d%d", &a, &b);
}
}
( A )
18、程序段如下int k=0;
while(k++<=2) printf ("%d\n", k);
则执行结果是________ 。
( D )
19、在说明一个结构体变量时系统分配给它的存储空间是________ 。
( B )
20、设 p1 和 p2 是指向同一个字符串的指针变量,c 为字符变量,则以下不能正确执行的赋值语句是()。
二、填空题 (共10题,每题2分,共计20分)
1、有定义int a=-1;则pirntf("%d,%o",a,a")的输出结果是________。
2、下列程序段的运行结果是_____。
main()
{
int m=1,t=1;
for(;;)
{
m=m*t;
t++;
if(t>4)break;
}
printf("%d\n",m);
}
3、下列程序段的运行结果是_____。
main()
{
int n,s=0;
for(n=1;n<=6;n++)
{
if(n%3==0)continue;
s=s+n;
}
printf("%d\n",s);
}
4、int a = 3; a+=a-=a*a; 求a的最后结果
5、实参与形参占用独立的( )
6、执行以下语句段
int i;
int fun(int x)
{
return ((x>0)?fun(x-1)+fun(x-2):1);
}
i=fun(3);
i的值为________。
7、int w=1, x=2, y=3, z=4; 则条件表达式w>x?w:y<z?y:z的结果为________。
8、要调用数学处理函数时,在 #include命令中应包含()头文件。
9、下面程序根据以下函数关系,对输入的每个x 值,计算出y值。请分析程序填空。
main()
{
int x,y;
scanf("%d",&x);
if(【1】________) y=x*(x+2);
else if(【2】________) y=x-1;
else 【3】________;
if(y!=-1) printf("%d",y);
else printf("error");
}
10、C 语言中,一个函数一般由两个部分组成,它们是______和函数体。
三、编程题 (共3题,每题0分,共计40分)
1、编写程序:判断输入字符的字母的个数,以*结束输出。
2、编写程序:从键盘输入 n (n<10)个学生的学号(学号为4位的整数,从1000开始)、成绩并存入结构数组中,查找并输出成绩最高的学生信息。 输入输出示例:括号内为说明,无需输入输出 输入样例: 3 (n=3) 1000 85 1001 90 1002 75 输出样例: 1001 90
3、编写程序:查找n在数组a中最后一次出现的位置 例如:如果a数组中的元素为:[0,5,0,5,6,8,0,4,3,0],当n=5时,程序的输出结果为:5 is no.3 当n=10时,程序的输出结果应为:10 not found
相关标签:
- C语言
- 安徽工业大学
- 期末精选样卷