哈尔滨商业大学往年计算机C语言冲刺卷
本试卷为哈尔滨商业大学往年计算机C语言冲刺卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
计算机C语言冲刺卷
一、理论基础 (共20题,每题1分,共计10分)
( D )
1、假定x和y为 double型,则表达式x=2,y=x+3/2的值是________。
( D )
2、算法可使用下面 方法来描述。
( A )
3、若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是________。
( A )
4、下列c语言用户标识符中合法的是________。
( B )
5、数据是信息的符号表示; 信息是数据的内涵,是数据的________。
( D )
6、下列运算符中,优先级最高的是________。
( B )
7、下列字符中,ascii码值最小的是________。
( D )
8、有定义int n=789; 下列表达式结果为8的是________。
( D )
9、与二进制小数0.1等值的十六进制小数为________。
( B )
10、数值型数据包括( )两种。
( D )
11、下列选项中合法的赋值语句是________。
( D )
12、设有声明"int p[10]={1,2}
,i=0;
",以下语句中与"p[i]=p[i+1],i++;
"等价的是___________。
( C )
13、以下关于链式存储结构的叙述中哪一条是错误的?
( B )
14、下列关于八进制与十六进制的描述中,错误的是________。
( C )
15、下列标识符,不合法的是________。
( C )
16、程序运行输出了错误的结果,可以排除下列哪一个因素。
( B )
17、变量的指针是________。
( C )
18、下述共同体变量x所占用内存字节数为________。
union exp
{
int i;
float j;
double k;
}
x;
( B )
19、若有int a[][2]= {{1,2},{2,3}}; 则*(a+1),*(*a+1)的含义分别为________。
( C )
20、c 语言提供的基本数据类型关键字是________。
二、控制结构 (共10题,每题1分,共计10分)
( D )
1、当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是________。
( A )
2、有如下程序:
main ()
{
int x = 1, a = 0, b = 0;
switch (x)
{
case 0:
b++;
case 1:
a++;
case 2:
a++;
b++;
}
printf ("a = %d, b = %d\n", a, b);
}
该程序的输出结果是________。
( C )
3、switch语句中表达式(expression)的值不允许用的类型是________。
( A )
4、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( A )
5、switch语句不能用于下列哪种数据类型 ( )
( C )
6、下列程序的输出结果是______。
#include<stdio.h>
main()
{
int a=0,b=1,c=2;
if(++a>0 || ++b>0) ++c;
printf("%d,%d,%d",a,b,c);
}
( A )
7、选择出合法的if语句(设int x,a,b,c;)________。
( D )
8、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=3则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为______。
( D )
9、以下叙述中正确的是________。
( B )
10、假定所有变量均已正确定义,下列程序段运行后x的值是________。 k1=1; k2=2; k3=3; x=15; if(!k1) x--; else if(k2) x=4; else x=3;
三、循环结构 (共10题,每题1分,共计10分)
( D )
1、下列4个关于c语言的结论中错误的是________。
( B )
2、设i,j,k均为int型变量,则执行完下面的for循环后,k的值为 for(i=0,j=10;i<=j;i++,j--) k=i+j;
( B )
3、下列for循环语句的执行次数是________。 for(int x=0,y=0;(y!=0)&&(x<4);x++)
( B )
4、以下关于switch语句和break语句的描述中,正确的是______。
( A )
5、以下不构成无限循环的语句或语句组是______。
( A )
6、下面的程序
main()
{
int a=2;
do
{
printf("%d\n",a-=2);
}
while(!(--a) );
}
______。
( A )
7、用在switch语句的关键字没有哪个?
( A )
8、下面程序的运行结果是________。
main()
{
int i, j, a = 0;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 4; j++)
{
if (j % 2) break;
a++;
}
a++;
}
printf("%d\n", a);
}
( C )
9、下面程序的运行结果是________。
main( )
{
int cl=2,c2=0;
while(!c2--)printf(''%d%d'',cl--,c2);
}
( A )
10、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( B )
1、以下能对二维数组a进行正确初始化的语句是________。
( A )
2、若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]=0,( *p)[3]; p=s;
( A )
3、如果用数组名作为实参,则传递给形参的是________。
( B )
4、有以下程序:
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 )
5、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( D )
6、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。
( A )
7、以下能正确定义二维数组的是______。
( C )
8、假定double类型变量占用8个字节,且数组定义如下,则数组length在内存中所占字节数是________。double length [10];
( C )
9、以下二维数组c 的定义形式是________。
( C )
10、以下能对一维数组a进行正确初始化的语句是________。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( C )
1、对下述程序的判断中,正确的是________。
main()
{
char*p,s[256];
p=s ;
while(strcmp(s,"the end"))
{
printf("input the string:");
gets(s);
while(*p) putchar(*p++);
}
}
( A )
2、下列字符串是标识符的是: 。
( D )
3、下列字符串中,正确的c标识符是________。
( A )
4、下列合法的字符型常量是________。
( C )
5、有以下程序:
main()
{
char str[]="xyz", *ps=str;
while(*ps) ps++;
for(ps--;ps-str>=o;ps--) puts(ps);
}
执行后的输出结果是________。
( A )
6、设有定义:char*c; 以下选项中能够使字符型指针c正确指向一个字符串的是________。
( B )
7、下列变量定义中,错误的是______。
( C )
8、若有定义: char str1[10] = "aaaaaaa"; char str2[10] = "bbbbb"; 将字符串str2连接到str1,则下列描述中正确的是________。
( A )
9、下面不正确的字符串常量是________。
( A )
10、从键盘上输入某字符串时,不可使用的函数是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( A )
1、若a和b均是正整型变量,正确的switch语句是________。
( C )
2、c语言规定,函数返回值的类型是由( )决定的。
( A )
3、以下关于return语句的叙述中不正确的是________。
( A )
4、有函数char fun(char *p) { return p; } 该函数的返回值是________。
( B )
5、有以下程序段:
int j;
float y;
char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为
( A )
6、设有以下函数
f(int a) {
int b=0;
static int c=3;
b++;
c++;
return(a+b+c);
}
如果在下面的程序中调用该函数,则输出结果是______。
main() {
int a=2,i;
for(i=0;i<3;i++)printf("%d\n"f(a));
}
( B )
7、有以下程序段若要给 c1、c2、c3 分别输入字母a,b,c,则以下对输入形式的描述正确的是________。
( D )
8、下面说法中错误的是________。
( B )
9、下列关于函数之间数据传递的叙述正确的是________。
( B )
10、c语言程序中必须有的函数是________。
七、指针 (共10题,每题1分,共计10分)
( B )
1、以下能正确定义一维数组的选项是________。
( A )
2、若定义static int a[2][2]={1,2,3,4 },则a数组的各数组元素分别为______。
( B )
3、c语言中,函数值类型的定义可以缺省,此时函数值的隐含类型是________。
( A )
4、以下对c语言函数的有关描述中,正确的是________。
( B )
5、下列各项中不属于算法基本特征的是________。
( B )
6、下列二维数组初始化语句中,正确且与语句int a[][3]= { 1,2,3,4,5 }等价的是________。
( 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]);
( A )
8、以下程序的运行结果是________。
#include <stdio.h>
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,11,12};
int *p=a+5,*q=null;
*q=8(p+5);
printf("%d %d\n", *p,*q);
}
( D )
9、下列选项不属于函数的组成部分是?
( B )
10、C语言函数内定义的局部变量的隐含存储类别是
八、结构体 (共10题,每题1分,共计10分)
( B )
1、有以下程序
struct stu
{
char name[10];
int num;
float totalscore;
};
void f(struct stu *p)
{
struct stu s[2]={{"sundan",20044,550} ,{"penghua",20045,537}}, *q=s;
++p ;
++q;
*p=*q;
}
main()
{
struct stu s[3]= {{"yangsan",20041,703},{"lisiguo",20042,580}};
f(s);
printf("%s %d %3.0f\n", s[1].name, s[1].num, s[1].totalscore);
}
程序运行后的输出结果是________。
( D )
2、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( B )
3、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( B )
4、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是 struct node char data; struct node*next; a,b,*p=&a,*q=&b;
( A )
5、设有结构体的定义如下:
struct data
{
char c1;
char c2;
}
;
则sizeof(struct data)的值是________。
( D )
6、表达式 *((int *)(p+1)+2)的值时_______.
static struct
{
int x, y[3];
}
a[3] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}, *p;
p = a+1;
( B )
7、下面赋值表达式不正确的是__________________.
struct student
{
long num;
char name[20];
} st1, st2={101, "tom"}, *p=&st1;
( C )
8、下面说法正确的是________。
( C )
9、static struct
{
int a1;
float a2;
char a3;
}
a[10]={1,3.5,'a'};
说明数组a是地址常量,它有10个结构体型的下标变量,采用静态存 储方式,其中被初始化的下标变量是________。
( D )
10、c语言中,switch后的括号内表达式的值可以是________。
九、程序题 (共10题,每题1分,共计10分)
( C )
1、在执行以下程序时,为了使输出结果为:t=4,则给a和b输入的值应满足的条件是
main()
{
int s,t,a,b;
scanf("%d,%d",&a,&b);
s=1; t=1;
if(a>0)s=s+1;
if(a>b)t=s+t;
else if(a==b) t=5;
else t=2*s;
printf("t=%d\n",t);
}
( B )
2、阅读以下程序:
main( )
{
int x;
for(x=5;x>0;x--) if (x--<5) printf("%d,",x);
else printf("%d,",x++);
}
程序运行后的输出结果是________。
( C )
3、有以下程序
main( )
{
char a[]="abcdefg",b[10]="abcdefg";
printf("%d %d\n",sizeof(a),sizeof(b));
}
执行后输出结果是________。
( D )
4、有以下程序 int f(int b[][4])
{
int i,j,s=0;
for(j=0;j<4;j++)
{
i=j;
if(i>2) i=3-j;
s+=b[i][j];
}
return s;
}
main( )
{
int a[4][4]= {{1,2,3,4} ,{0,2,4,5} ,{3,6,9,12} ,{3,2,1,0}};
printf("%d\n",f(a));
}
执行后的输出结果是________。
( B )
5、下面程序的输出结果是 ____________.
#include<stdio.h>
void main( )
{
int n=4;
while (n--) printf("%d ",n--);
}
( B )
6、下面程序是计算 n 个数的平均值 , 请填空 . _________
#include<stdio.h>
void main( )
{
int i,n;
float x,avg=0.0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%f",&x);
avg=avg+______;
}
avg=________;
printf("avg=%f\n",avg);
}
( D )
7、有以下程序:
#include<stdio.h>
main() int a=1,b=0;
printf("%d,",b=a+b);
printf("%d\n",a=2+b);
程序运行后的输出结果是________。
( B )
8、有以下程序
main()
{
unsigned char a=2,b=4,c=5,d;
d=a|b;
d&=c;
printf("%d\n",d);
}
程序运行后的输出结果是______。
( C )
9、下列语句输出结果是________。int i= 65535; printf( "%d",i);
( A )
10、下列程序的输出结果为()。
main()
{int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}
相关标签:
- C语言
- 哈尔滨商业大学
- 冲刺卷