西北民族大学历年C语言程序设计专升本精选样卷
本试卷为西北民族大学历年C语言程序设计专升本精选样卷,题目包括:单项选择题,判断题,填空题,程序分析题,编程题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。
C语言程序设计专升本精选样卷
一、单项选择题 (共20题,每题2分,共计40分)
( A )
1、以下关于typedef的叙述错误的是________。
( A )
2、两个或两个以上模块之间联系的紧密程度称为( )。
( B )
3、下列定义数组的语句中,正确的是________。
( A )
4、若有下面的说明和定义:
struct test
{
int ml;
char m2;
float m3;
union uu
{
char ul[5];
int u2[2];
}
ua;
}
myaa;
则sizeof(struct test )的值是________。
( B )
5、若 x 为 int 型变量 , 则执行以下语句后 ,x 的值为 。 x=6; x+=x-=x*x;
( D )
6、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( A )
7、一个c程序由函数a( ),b( ),c( )和函数p( )构成,在函数a( )中分别调用了函数b( )和函数c ( ),在函数b( )中调用了函数a( ),且在函数p( )中也调用了函数a( ),则可以说
( B )
8、下列赋值语句错误的是________。
( C )
9、逗号表达式"(a=3*5,a*4),a+15"的值是________。
( A )
10、有以下程序:
main()
{
int a=3,b=4,c=5,d=2;
if(a>b) if(b>c) printf("%d",d+++ 1);
else printf("%d",++d+1);
printf("%d\n",d);
}
程序运行后的输出结果是 ______。
( B )
11、宏定义用于将一个标识符定义为一个
( D )
12、下面有关for循环的正确描述是________。
( B )
13、有以下程序
main( )
{
int c=5,x;
scanf("%d",&x);
switch(x+1)
{
case 6: c++;
case 8: ++c;
break;
default:c+=3;
}
printf("%d",c);
}
程序运行时,从键盘输入: 5<回车>,程序执行后的输出结果是________。
( C )
14、用冒泡排序对4,5,6,3,2,1进行从小到大排序,第三趟排序后的状态为________。
( A )
15、设有如下定义:
struct sk
{
int a;
float b;
}
data,*p;
若要使p指向data中的a域,正确的赋值语句是________。
( C )
16、下列程序段的输出结果为________。 int a=7,b=9,t; t=a*=a>b?a:b; printf("%d",t);
( D )
17、int a[10]; 合法的数组元素的最小下标值为____
( D )
18、下述程序段的输出结果是________。
main( ){
int x=10, y=10;
printf(''%d, %d\n'', x++, ++y);
}
( A )
19、以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
( D )
20、以下程序段的输出结果是()。
char *alp[]={"ABC","DEF","GHI"}; int j; puts(alp[1]);
二、判断题 (共10题,每题2分,共计20分)
( F )
1、在c程序中,abc与ABC是两个相同的变量。
( T )
2、比较两个字符串是否相等不能通过条件运算符"=="。
( T )
3、do…while循环语句中的循环体至少会执行一次。
( F )
4、函数调用时,如果把数组名作实参,则形参数组元素的值发生变化时,实参数组元素的值不发生变化。
( T )
5、共用体变量所占的内存长度等于最长的成员的长度。
( F )
6、在c语言程序设计中函数是允许嵌套定义的。
( F )
7、全局变量的作用域是整个源程序文件。
( T )
8、c语言函数默认的返回值类型是 int 。( )
( T )
9、逻辑表达式的值只能为1或0。
( T )
10、数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。
三、填空题 (共5题,每题4分,共计20分)
1、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是________。 我的答案: break
2、八进制数37转换成二进制数是________ 。
3、#include <stdio.h>
void main()
{
int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;
for (i=1;i<3;i++) for (j=0;j<i;j++) s+=a[i][j];
printf("%d\n",s);
}
4、对于文件末尾检测函数feof,如果文件指针已到文件末尾,则函数返回值是________。
5、函数的形参在未被调用前不分配空间,函数形参的____要和实参相同。
四、程序分析题 (共4题,每题5分,共计20分)
1、下列程序运行时,若输入1abcedf2df<回车> 输出结果为 ________ 。
#include <stdio.h>
main()
{
char a=0,ch;
while((ch=getchar())!=‘\n’)
{
if(a%2!=0&&(ch>=‘a’&&ch<=‘z’)) ch=ch-‘a’+‘a’;
a++;
putchar(ch);
}
printf("\n");
}
2、以下程序的输出结果是 ________。
#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("%d %d\n",*p,*q);
}
3、下列程序段的运行结果是_____。 char s1[20]="abcdef", s2[5]="abc"; strcpy(s1,s2); printf("%c", s1[2]);
4、下面程序可求出矩阵两条对角线上的元素之和。请分析程序填空。
main()
{
int a[3][3]={1,3,6,7,9,11,14,15,17},sum1=0,sum2=0,i,j;
for(i=0;i<3;i++)for(j=0;j<3;j++)
if(i==j) sum1+=a[i][j];
for(i=0;i<3;i++)
for( 【1】________;【2】________;j--)
if(i+j==2) sum2+=a[i][j];
printf("sum1=%d,sum2=%d\n",sum1,sum2);
}
五、编程题 (共3题,每题0分,共计50分)
1、编写程序:从键盘上输入一个数字组成的字符串(字符串长度小于8),将该字符串转换成一个十进制数 例如:从键盘上输入2345,则程序运行的结果应当为:n=2345()
2、编程: 从键盘上输入一个正整数n,计算并输出n的阶乘 例如: 如果从键盘上输入8, 程序的运行结果应为:the result is: 40320()
3、有以下职工信息,使用结构体数组存储这些信息,从键盘输入5条记录,
之后在屏幕上依次输出职工信息。
struct stuff{
int stuffID;//职工编号
float bonus; //工资
};
【输入形式】5条职工信息,分行输入,数据间空格隔开
【输出形式】分行输出5条职工信息和最低工资,每行数据均使用1个空格分隔
【输入样例】
1001 8540.59
1002 6345.45
1003 3500.65
1004 4898.86
1005 5345.80
【输出样例】每行数据均使用一个空格分割,分五行输出
1001 8540.59
1002 6345.45
1003 3500.65
1004 4898.86
1005 5345.80
minBonus = 3500.65
相关标签:
- C语言
- 西北民族大学
- 专升本精选样卷