河北科技大学历年C语言程序设计专升本
本试卷为河北科技大学历年C语言程序设计专升本,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计专升本
一、理论基础 (共20题,每题1分,共计10分)
( A )
1、若有定义语句:"char se10]="1234567\0\0"; ",则strlen(s)的值是________。
( B )
2、在c语言程序中可用做用户标识符的是________。
( C )
3、以下选项中可作为c语言合法整数的是________。
( C )
4、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是________。
( C )
5、对于类型相同的两个指针变量之间,不能进行的运算是______。
( B )
6、数据是信息的符号表示; 信息是数据的内涵,是数据的________。
( C )
7、设x、y、t均为int型变量,则执行语句x=y=3; t=++x||++y; 后,y的值为______。
( A )
8、下列关于指针运算的描述中,错误的是________。
( D )
9、已知int x=(1,2,3,4); 变量x的值是________。
( B )
10、若定义int a=10,则表达式a+=a=aa*=a的值是________。
( A )
11、以下叙述中正确的是________。
( A )
12、设有声明语句:char a='\72'; 则变量a________。
( D )
13、若已定义:int a[9],*p=a; 并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是________。
( A )
14、以下选项中,与 n=i++ 完全等价的表达式是________。
( B )
15、已知字母a的ascii代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是______。
( A )
16、以下答案中不是c语言最基本数据类型的是________。
( D )
17、可以作为自定义标识符的是________。
( C )
18、算法的每一步都是可执行的,都是可以实现的,指的是算法的( )特点
( D )
19、以下合法的常量是________。
( D )
20、c语言中,double类型数据占________。
二、控制结构 (共10题,每题1分,共计10分)
( C )
1、在嵌套使用if语句时,c语言规定else总是________。
( A )
2、若a是数值类型,则逻辑表达式(a==1)||(a!=1)的值是________。
( B )
3、c语言对嵌套if语句的规定是:else总是与( ) 。
( C )
4、当从键盘上输入字符"12134211"下面程序的 输出结果是________。
main( )
{
char s;
int v1=0,v2=0,v3=0,v4=0,k;
for(k=0;k<=7;k++)
{
scanf("%c",&s);
switch(s)
{
default: v4++;
case '1': v1++;
case '3': v3++;
case '2': v2++;
}
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
( C )
5、switch语句中表达式(expression)的值不允许用的类型是________。
( A )
6、在c程序中,判逻辑值时,用"非0"表示逻辑值"真",又用"0"表示逻辑值"假"。在求逻辑值时,逻辑真和逻辑假可分别表示为
( C )
7、下述语句中,_____中的if语句语法是错误的。 ( )
( C )
8、下列程序的输出结果是________。
main ()
{
int a = 4, b = 5, c;
if (a < b)
{
c = a * b;
printf ("%d,%d,%d\n", b, a, c);
}
else
{
c = b / a;
printf ("%d,%d,%d\n", b, a, c);
}
}
( A )
9、c 语言中逻辑表达式的值为________。
( C )
10、结构化程序设计所规定的三种基本控制结构是()。
三、循环结构 (共10题,每题1分,共计10分)
( C )
1、下面程序段中 , 循环体的执行次数是 ___________.
int a=10,b=0;
do
{
b+=2;
a-=2+b;
}
while(a>=0);
( B )
2、在"先判断后工作"的循环程序结构中,循环体执行的次数最少是________次。
( C )
3、for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是________。
( A )
4、在循环结构中,______可以使得同一组语句一次也不执行。
( D )
5、下列叙述中正确的是________。
( B )
6、有如下程序
#define N 4
#define M N+2
#define NUM 2*M+1
main()
{
int i;
for(i=1;i<=NUM;i++)printf("%d\n",i);
}
该程序中的for循环执行的次数是______。
( B )
7、执行下面程序片段的结果是______。int x=23;
do
{
printf("%2d",x--);
}
while(!x);
( A )
8、用在switch语句的关键字没有哪个?
( C )
9、以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++); ()
( C )
10、以下程序的输出结果是________。
#include<stdio.h>
main( )
{
int i;
for(i=1;i<5;i++)
{
if(i%2)printf(''+''); else continue;
printf(''-'')
}
printf('' $ \n'');
}
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义一维数组的选项是________。
( B )
2、若已定义实参数组 int a[3][4]= { 2,4,6,8,10 }; 则在被调用函数 f 的下述定义中,对形参数组 b 定义正确的选项是 __________.
( D )
3、若有说明int a[3][4]; 则a数组元素的非法引用是________。
( A )
4、在c语言中,若函数调用时实参是数组名,则传递给对应形参的是______。
( D )
5、下面关于数组的描述错误的是________。
( A )
6、有以下程序:
main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10,p++)printf("%d,",*p);
}
程序运行后的输出结果是________。
( B )
7、定义如下变量和数组: int k; int a[3][3]= {9,8,7,6,5,4,3,2,1}; 则下面语句的输出结果是________。
for(k=0;k<3;k++) printf("%d",a[k][k]);
( B )
8、下列关于字符串的说法中错误的是________。
( C )
9、若有说明:int a[][4]={1,1} 则以下叙述正确的是________。
( D )
10、static char str[10]="China";数组元素个数为()。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( B )
1、设有字符串a="he has 钱!",则该字符串的长度为( )。
( C )
2、对下述程序的判断中,正确的是________。
main()
{
char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{
printf("input the string:");
gets(s);
while(*p) putchar(*p++);
}
}
( D )
3、以下能正确定义字符串的语句是________。
( D )
4、在c语言中,以 作为字符串结束标志
( D )
5、下列字符串中,正确的c标识符是________。
( D )
6、下列字符串中,不可以用作c标识符的是________。
( D )
7、以下正确的字符串常量是________。
( D )
8、有以下程序:
#include<string.h>
main()
{
char *p="abcde\0ghjik\0";
printf("%d\n",strlen(p) );
}
程序运行后的输出结果是________。
( D )
9、有以下程序
void fun(char s[][10],int n)
{
char t;int i,j;
for(i=0;i<N-1;I++)
for(j=i+1,j<N;J++)}
/*比较字符串的首字符大小,并交换字符
串的首字符*/
if(s[i][0])>s[j][0]){
t=s[i][0];s[i][0]=s[j][0];s[j][0]=t;
}
main()
{
char ss[5][10]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};
fun(ss,5);printf(”%s,%s”,ss[0],ss[4]);
}
程序运行结果是________。
( B )
10、下列数据中属于"字符串常量"的是________。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、有以下程序片段: y=-1; if(x!=0) if(x>0) y=1; else y=0; 其能正确表示的数学函数关系是________。
( D )
2、以下函数 fun 形参的类型是 __________.
fun( float x)
{
float y;
y=3*x-4;
return y;
}
( A )
3、假设有语句sizeof(double),则它是________。
( B )
4、以下函数调用语句中含有_______个实参。 func((exp1,exp2),(exp3,exp4,exp5));
( C )
5、考虑函数原型 void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是________。
( A )
6、下列程序的输出结果是________。
#include <stdio.h>
int f(int a,int b);
main()
{
int i=2,p,j,k;
j=i;
k=++i;
p=f(j,k);
printf("%d",p);
}
int f(int a,int b)
{
int c;
if(a>b)c=1;
else if(a==b) c=0;
else c=-1;
return(c);
}
( D )
7、已定义以下函数int fun( int *p)
{
return *p;
}
则fun函数返回值足
( D )
8、以下错误的描述是:函数调用可以________。
( D )
9、fwrite函数的一般调用形式是________。
( C )
10、下面叙述中错误的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、下列能正确进行字符串赋值的是________。
( B )
2、设有以下函数:
#include <stdio.h>
int f(int a)
{
int b=0,c;
c=3;
b++ ;
c++;
return (a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是 ______.
void main()
{
int i;
for(i=0;i<3;i++)
printf("%d\n",f(i));
}
( C )
3、下面正确的函数定义形式为________。
( D )
4、已有定义:int i,a[10],*p; 则合法的赋值语句是________。
( C )
5、下面程序的输出结果是______。
main()
{
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
int(*p)[4]=a,i,j,k=0;
for(i=0;i<3;i++) for(j=0;j<2;j++) k=p[i][j];
printf("%d\n",k);
}
( B )
6、设变量定义为【int a[3] { 1,3,5 }, *p=a+1; 】,则*p的值是________。
( A )
7、通常适用于从被调用函数中将一个值传回主调函数的参数传递方式是________。
( C )
8、下列关于指针变量的描述,不正确的是________。
( A )
9、定义如下变量和数组: int k,a[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是________。for(k=0;k<3;k++) printf("%d ",a[k][2-k]);
( B )
10、以下程序运行后,输出结果是____
#define PT 5.5
#difine S(x) PT*x*x
main()
{
int a=1,b=2;
print ("%4.lf/n",S(a+b));
}
八、结构体 (共10题,每题1分,共计10分)
( B )
1、下列程序的输出结果是________。
main()
{
struct st
{
int y,x,z;
}
;
union
{
long i;
int j;
char k;
}
un;
printf("%d,%d\n",sizeof(struct st),sizeof(un))
}
( D )
2、有以下定义和语句
struct workers
{
int num;
char name[20];
char c;
srruct
{
int day;
int month;
int year;
}
s;
};
struct workers w,*pw;
pw=&w 能给w 中year 成员赋1980 的语句是________。
( B )
3、已知函数的原形如下,其中结构体a为已经定义过的结构,且有下列变量定义 struct a*f(int t1,int*t2,struct a t3,struct a*t4) struct a p,*p1; int i; 则正确的函数调用语句为
( A )
4、设有以下语句
typedef struct s
{
int g;
char h;
}
t;
则下面叙述中正确的是________。
( B )
5、有以下程序:
struct stu
{
char num[10];
float score[3];
};
main()
{
struct stu s[3]={{"20021",90,95,85}, {"20022",95,80,75}, {"20023",100,95,90}},*p=s;
int i;
float sum=0;
for(i=0;i<3;i++ ){
sum=sum+p->score[i];
}
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
( D )
6、若有以下说明和语句:
struct st
{
int n;
char *ch;
}
;
struct st a[3]
{
5,"abc",7,"def",9,"ghk"
}
,*p=a 则值为6的表达式是______。
( D )
7、有以下程序
typedef struct
{
int b,p;
}
a;
void f(a c) /* 注意:c是结构变量名 */
{
int j;
c.b+=1;
c.p+=2;
}
main()
{
int i;
a a={1,2};
f(a);
printf("%d,%d\n",a.b,a.p);
}
程序运行后的输出结果是______。
( C )
8、下面哪个不是关键字?
( A )
9、以下关于 c 语言数据类型使用的叙述中错误的是________。
( C )
10、enum a
{
sum=9,mon=-1,tue
}
;
定义了________。
九、程序题 (共10题,每题1分,共计10分)
( D )
1、有以下程序
main()
{
int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d ",i,j,k);
}
程序运行后的输出结果是________。
( C )
2、以下程序的输出结果是
main( )
{
int a= -1,b=1,k;
if((++a<0)&& ! (b-- <=0)) printf("%d %d\n",a,b);
else printf("%d %d\n",b,a);
}
( B )
3、下面程序的功能是输出以下形式的金字塔图案:
*
***
*****
main ()
{
int i, j;
for (i = 1; i < 4; i++)
{
for (j = 1; j <= 4 - i; j++)
printf (" ");
for (j = 1; j <= _______; j++)
printf ("*");
printf ("\n");
}
}
在下划线处应填入的是________。
( C )
4、下列程序的运行结果是________。 int y=5,x=14;
y=((x=3*y,x+1),x-1);
printf("x=%d,y=%d",x,y);
( C )
5、下列程序的输出结果是________。
void fun(int*x,int y)
{
printf("%d%d",*x,*y);
*x=3;
*y=1;
}
main()
{
int x=1,y=2;
fun(&y,&x);
printf("%d%d",x,y);
}
( B )
6、有以下程序:
main()
{
char x[]="string";
x[0]=0;
x[1]='\0';
x[2]='0';
printf("%d %d\n",sizeof(x),strlen(x));
}
程序运行后的输出结果是________。
( A )
7、有以下程序 #include<stdio.h>
main() {
int a=1,b=0;
if(a) b++;
else if(a==0) if(a) b+=2;
else b+=3;
printf("%d\n",b);
} 程序运行后的输出结果是________。
( D )
8、阅读下面的程序
#include<stdio.h>
void main()
{
int i,j;
i=010;
j=9;
printf("%d,%d",i-j,i+j);
}
则程序的运行结果是 __________.
( A )
9、以下程序的功能是:按顺序读入10名学生4门课程的成绩,计算出每位学生的平均分并输出,程序如下:
main()
{
int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{
for(k=1;k<=4;k++)
{
scanf("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("no%d:%f\n",n,ave);
}
}
上述程序运行后结果不正确,调试中发现有一条语句出现在程序的位置不正确。这条语句是______。
( D )
10、有以下程序#define P 3
void F(int x)
{
return(P*x*x);
}
main()
{
printf("%d\n",F(3+5));
}
程序运行后的输出结果是______。
相关标签:
- C语言
- 河北科技大学
- 专升本