大连民族大学C语言专升本预测卷
本试卷为大连民族大学C语言专升本预测卷,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言专升本预测卷
一、理论基础 (共20题,每题1分,共计10分)
( C )
1、设x=015,则x=x^017的值是________。
( A )
2、表达式3!=3的值是________。
( C )
3、计算机内部运算使用的数是________。
( A )
4、在c语言中,下面合法的长整型数是________。
( C )
5、下列可作为c语言赋值语句的是______。
( B )
6、下列c运算符中,优先级最高的是________。
( C )
7、在c语言中,以下一组运算符中,优先级最高的运算符是______。
( B )
8、下面关于指针的说法中错误的是________。
( C )
9、下列不属于整型变量的类型是________。
( B )
10、以下叙述正确的是________。
( D )
11、下列不属于逻辑运算符的是________。
( B )
12、以下4个选项中,属于浮点数常量的是________。
( B )
13、下列关于自动类型转换的说法中,正确的是________。
( D )
14、c语言提供的预处理功能包括条件,其基本形式为: #×××标识符 程序段1 #else 程序段2 #endif 这里的×××可以是________。
( C )
15、下列错误的是________。
( D )
16、已有定义int a= -2; 和输出语句 printf("%8x",a); 以下正确的叙述是________。
( A )
17、若有定义:char c; double d; 程序运行时输入: 1 2<回车>,能把字符 1 输入给变量 c数值 2 输入给变量 d 的输入语句是________。
( D )
18、在c语言中,数字029是一个( )
( B )
19、运行下面程序时,若从键盘输入5后回车,则程序的输出结果是________。
( C )
20、以下数值中,不正确的八进制数或十六进制数是________。
二、控制结构 (共10题,每题1分,共计10分)
( A )
1、有如下程序:
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 )
2、下列说法中不正确的是________。
( A )
3、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
( A )
4、分析下列程序:
#include<stdio.h>
main()
{
int*p1,*p2,*p;
int a=6,b=9;
p1=&a;
p2=&b;
if(a<b)
{
p=p1;
p1=p2;
p2=p;
}
printf("%d,%d",*p1,*p2);
printf("%d,%d",a,b);
}
程序的输出结果为________。
( B )
5、c语言中,关系表达式和逻辑表达式的值是________。
( C )
6、下列if语句中,不正确的是________。
( A )
7、c语言的if语句嵌套时,if与else的配对关系是________。
( D )
8、在c 的if 语句中,可用作条件的表达式是________。
( A )
9、c 语言中逻辑表达式的值为________。
( B )
10、将三个数排序需要比较________次。
三、循环结构 (共10题,每题1分,共计10分)
( A )
1、有以下程序
#include <stdio.h>
main()
{
int c;
while ((c=getchar())!='\n')
{
switch(c-'2')
{
case 0: case 1: putchar(c+4);
case 2: putchar(c+4);
break;
case 3: putchar(c+3);
default: putchar(c+2);
break;
}
}
printf("\n");
}
从第一列开始输入以下数据,<cr>代表一个回车符。 2473<cr> 程序的输出结果是________。
( D )
2、程序段如下:则以下说法中不正确的是: 。
#include <stdio.h>
main()
{
int k=2,;
while(k<7)
{
if(k%2)
{
k=k+3;
printf( " k=%d\n " ,k);
continue;
}
k=k+1;
printf( " k=%d\n " ,k);
}
}
( B )
3、有如下程序
#include<stdio.h>
void main()
{
int x=23;
do
{
printf("%d",x--);
}
while(!x);
}
该程序的执行结果是 _________。
( A )
4、下列程序是死循环的是________。
( D )
5、有以下程序
main()
{
int i=0,s=0;
for(;;)
{
if(i==3‖i==5) continue;
if(i==6) break;
i++;
s+=i;
}
;
printf("%d\n",s);
}
程序运行后的输出结果是________。
( C )
6、有以下程序:
#include <stdio.h>
main()
{
int i, j, m=1;
for(i=1; i<3; i++)
{
for(j=3; j>0; j--)
{
if(i*j>3)break;
m*=i*j;
}
}
printf("m=%d\n", m);
}
程序运行后的输出结果是______。
( B )
7、c语言中下面哪个不是循环语句?
( C )
8、以下程序的输出结果是 _______ 。
main( )
{
int i=0,s=0;
for (;;)
{
if (i==6) break;
i++;
s+=i;
}
printf("%d\n",s);
}
( A )
9、下面程序的运行结果是________。
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);
}
( A )
10、在 C语言中,为了结束由 while 语句构成的循环,while 后一对圆括号中表达式的值应该为()。
四、数组/指针数组 (共10题,每题1分,共计10分)
( A )
1、以下程序段给数组所有元素输入数据:
main()
{
int a[10],i=0;
while(i<10)scanf("%d",);
}
应在下划线处填入的是________。
( D )
2、若有以下定义: int a[]= {1,2,3,4,5,6,7 }; char c1='b',c2='2'; 则数值不为2的表达式是________。
( A )
3、若在以下定义和赋值语句,则才s数组的第i行第j列(假设i,j已正确说明并赋值)元素地址的合法引用为 int s[2][3]=0,( *p)[3]; p=s;
( A )
4、下列对字符数组进行初始化的语句中,______ 是正确的。
( B )
5、有以下程序:
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 则在程序下划线处应填入的是 ______ 。
( D )
6、以下对一维数组c 进行正确的定义初始化的语句是________。
( B )
7、对于int *pa[5]; 的描述,以下哪个选项是正确的
( D )
8、若char a[10]; 已正确定义,以下语句中不能从键盘上给a数组的 所有元素输入值的语句是________。
( D )
9、若有说明 int a[][4]={0,0};
则下面不正确的叙述是________。
( D )
10、static char str[10]="China";数组元素个数为()。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( D )
1、以下选项中能表示合法常量的是________。
( B )
2、下列数据中为字符串常量的是________。
( C )
3、以下叙述中不正确的是________。
( C )
4、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( D )
5、下列字符串中不能作为c标识符使用的是________。
( B )
6、设有两个字符串p和q,其中q是p的子串,把q在p中首次出现的位置作为子串q在p中位置的算法称为 (43) 。
( C )
7、下面程序段的运行结果是 char *s="abcde"; s+=2; printf("%d",s);
( A )
8、以下正确的字符串常量是________。
( A )
9、下面程序的功能是将字符串s 中所有的字符'c'删除。
#include "stdio.h"
main()
{
char s[80];
int i,j;
gets(s);
for (i=j=0;s[i]!='\0';i++)if (s[i]!='c') ;
s[j]='\0';
puts(s);
}
( B )
10、以下语句中,不能实现回车换行的是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( D )
1、在说明语句:int *f( ); 中,标识符f代表的是________。
( A )
2、在c语言中,函数的数据类型是指( )
( B )
3、有以下程序段:
int j;
float y;
char name[50];
scanf("%2d%f%s",&j,&y,name);
当执行上述程序段,从键盘上输入55566 7777abc后,y的值为
( D )
4、请阅读程序:
#include<math.h>
#include<stdio.h>
main()
{
float a,b,c;
scanf("%f%f",&a,&b);
c=a/b;
while(1) {
if(fabs(c)>1.6) {
a=b;
b=c;
c=a/b;
}
else break;
}
printf("%f\n",b);
}
若运行时从键盘上输入3.6 2.4<回车>,则输出结果是______。
( C )
5、以下各语句或语句组中,正确的操作是______。
( C )
6、关于strcmp()函数,下列描述中错误的是________。
( C )
7、下列函数中,能够从键盘获得一个字符数据的函数是________。
( B )
8、关于 c 语言的符号常量,以下叙述中正确的是________。
( B )
9、以下叙述中错误的是________。
( D )
10、对于 if(表达式)语句,以下说法正确的是________。
七、指针 (共10题,每题1分,共计10分)
( C )
1、以下叙述正确的是 。
( B )
2、若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10 },*ia=a; 则不能正确表示a数组元素的表达式是 ______。
( C )
3、若已定义x为int型变量,说明指针变量p的正确语句是________。
( C )
4、当用户要求输入的字符串中含有空格时,应使用的输入函数是________。
( C )
5、以下叙述中错误的是________。
( B )
6、以下程序段的执行结果为
#define PLUS(X,Y)X+Y
main()
{
int x=1,y=2,z=3,sum;
sum=PLUS(x+y,z)*PLUS(y,z);
printf("SUM=%d",sum);
}
( D )
7、已知三个字符为a、z和8,按它们的ascii码值升序排序,结果是________。
( D )
8、下面说法正确的是________。
( C )
9、sizeof(float)是________。
( B )
10、为了提高程序的运行速度,在函数中对于整型或指针可以使用()型的变量。
八、结构体 (共10题,每题1分,共计10分)
( D )
1、有以下程序
struct stu
{
int num;
float totalscore;
};
void f(struct stu p)
{
struct stu s[2]= {{20044,550}, {20045,537}};
p.num = s[1].num;
p.totalscore = s[1].totalscore;
}
main()
{
struct stu s[2]= {{20041,703} ,{20042,580}};
f(s[0]);
printf("%d %3.0f\n", s[0].num, s[0].totalscore);
}
程序运行后的输出结果是________。
( A )
2、有以下程序
struct stu
{
char name[10];
int num;
};
void f(char *name, int num)
{
struct stu s[2]={{"sundan",20044},{"penghua",20045}};
num = s[0].num;
strcpy(name, s[0].name);
}
main()
{
struct stu s[2]={{"yangsan",20041},{"lisiguo",20042}},*p;
p=&s[1];
f(p->name, p->num);
printf("%s %d\n", p->name, p->num);
}
程序运行后的输出结果是________。
( B )
3、有以下程序
#include <stdlib.h>
struct node
{
int num;
struct node *next;
};
main( )
{
struct node *p,*q,*r;
int sum=0;
p=(struct node *)malloc(sizeof(struct node));
q=(struct node *)malloc(sizeof(struct node));
r=(struct node *)malloc(sizeof(struct node));
p->num=1;
q->num=2;
r->num=3;
p->next=q;
q->next=r;
r->next=null;
sum+=q->next->num;
sum+=p->num;
printf("%d\n",sum);
}
执行后的输出结果是________。
( B )
4、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( D )
5、下面程序的输出是______。
main ()
{
struct cmplx
{
int x ;
int y ;
}
cnum[2]={1 , 3 , 2 , 7};
printf ( "%d\n" , cnum[0].y/cnum[0].x*cnum[1].x );
}
( D )
6、在16位pc机上使用c语言,若有如下定义
struct data {
int i;
char ch;
double f;
} b;
则结构变量b占用内存的字节数是________。
( C )
7、以下程序运行后的输出结果是
#include<stdio.h>
struct st
{
int x, y;
} data[2] = {{1, 10},{2, 20}};
main ()
{
struct st *p = data;
printf ("%d,", p->y);
printf ("%d\n", (++p)->x);
}
( A )
8、c 语言中的基本数据类型包括
( A )
9、若有下面的说明和定义:
struct test
{
int m1;
char m2;
float m3;
union uu
{
char u1[5];
int u2[2];
}
ua;
}
myaa;
则sizeof(struct test)的值是________。
( A )
10、在下列程序段中,枚举变量c1,c2的值依次是________。
enum color
{
red,
yellow,
blue=4,
green,
white
}
c1,c2;
c1=yellow;
c2=white;
printf("%d,%d\n",c1,c2);
九、程序题 (共10题,每题1分,共计10分)
( A )
1、有以下程序:
double f(double x);
main()
{
double a=0;
int i;
for(i=0;i<30;i+=10)a+=f((double)i);
printf("%5.0f\n",a);
}
double f(double x)
{
return x*x+1;
}
程序运行后的输出结果是________。
( A )
2、以下程序片段( ) 。
main ( )
{
int x=0,y=0,z=0;
if (x=y+z) printf("***");
else printf("###");
}
( D )
3、下面程序的运行结果是________。
main( )
{
int a,b;
a=-1;
b=0;
do
{
++a;
++a;
b+=a;
}
while(a<9);
printf("%d\n",b);
}
( C )
4、有以下程序
#include<stdio.h>
main()
{
int a[5]={1,2,3,4,5}, b[5]={0,2,1,3,0}, i, s=0;
for(i=0;i<5;i++) s=s+a[b[i]];
printf("%d\n",s);
}
程序运行后的输出结果是________。
( B )
5、有以下程序
main( )
{
int x=0,y=5,z=3;
while(z-->0&&++x<5) y=y-1;
printf("%d,%d,%d\n",x,y,z);
}
程序执行后的输出结果是________。
( C )
6、下列程序执行后的输出结果是 ___________.
#include <stdio.h>
void main( )
{
int a=5,b=60,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 )
7、以下程序运行后的输出结果是
main() {
char c;
int n=100;
float f=10;
double x;
x=f*=n/=(c=50);
printf("%d %f\n", n, x);
}
( C )
8、以下程序的输出结果是______。
main()
{
int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2) printf("%d",p[i]);
}
( A )
9、以下程序的输出结果是________。
main( )
{
int x=3,y=0,z=0;
if(x=y+z)printf(''* * * *'');
else printf(''# # # #'');
}
( A )
10、下述程序的运行结果是________。
#include<stdio.h>
void fun(int x)
{
putchar('0'+(x% 10));
fun(x/10);
}
main( )
{
printf(''\n'');
fun(1234);
}
相关标签:
- C语言
- 大连民族大学
- 专升本预测卷