广西民族大学C语言程序设计专升本考题
本试卷为广西民族大学C语言程序设计专升本考题,题目包括:理论基础,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
覆盖的内容包括:理论题,基础知识,控制结构,循环结构,数组/指针数组,字符串/字符串指针,函数/函数指针,指针,结构体,程序题。
C语言程序设计专升本考题
一、理论基础 (共20题,每题1分,共计10分)
( B )
1、在c语言程序中可用做用户标识符的是________。
( D )
2、若变量已正确定义为int型,要给a、b、c输人数据,正确的输入语句是________。
( D )
3、以下c语言用户标识符中,不合法的是________。
( B )
4、以下各标识符中,合法的是 。
( B )
5、以下定义语句中,错误的是 __________.
( B )
6、下列语句顺序执行后,a的值是________。 int a=13; a%=a/5;
( D )
7、下面赋值语句中正确的是________。
( A )
8、设有定义:int k=0; 以下选项的四个表达式中与其他三个表达式的值不相同的是______。
( C )
9、在标准ascii码表中,已知英文字母a的十进制码值是65,英文字母a的十进制码值是________。
( D )
10、一个c语言程序在一台32位机器上运行。程序中定义了三个变量x,y,z,其中x和z是int型,v为short型。当x=127,y=-9时,执行赋值语句z=x+y后,x,y,z的值分别是________。
( A )
11、某c语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在 (1) 时会报错,这是一种 (2) 错误。(1)处填________。
( B )
12、c语言提供的合法的数据类型关键字是______?
( B )
13、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是________。
( B )
14、设ch是char型变量,其值为a,且有下面的表达式ch=(ch>='a'&&ch<='z')?(ch+32):ch 。上面表达式的值是______。
( A )
15、若变量已正确说明为float类型,要通过语句 scanf("%f %f %f",&a,&b,&c); 给a赋予10.0,b赋予22.0,c赋予33.0,正确的输入形式是________。
( C )
16、在c语言中,只有在使用时才占用内存单元的变量,其存储类型是________。
( C )
17、若有定义:char *p1,*p2,*p3,*p4,ch; 则不能正确赋值的程序语句为________。
( B )
18、为了避免在嵌套的条件语句if-else 中产生二义性,c 语言规定: else子句总是与配对________。
( B )
19、对说明语句int a[10]={6,7,8,9,10};
的正确理解是________。
( D )
20、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为__________。
二、控制结构 (共10题,每题1分,共计10分)
( B )
1、与"y=(x>0?1:x<0?-1:0)";的功能相同的if语句是________。
( C )
2、运行以下程序后,如果从键盘上输入china#<回车>, 则输出结果为
#include <stdio.h>
main( )
{
int v1=0,v2=0;
char ch;
while ((ch=getchar( ))!='#') switch(ch)
{
case 'a': case 'h': default: v1++;
case 'o': v2++;
}
printf("%d,%d\n",v1,v2);
}
( C )
3、有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是________。
( D )
4、下列描述正确的是________。
( A )
5、有以下程序:
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 )
6、以下if语句书写正确的是________。
( C )
7、c语言中下面哪个不是条件语句?
( B )
8、以下叙述中正确的是________。
( C )
9、以下叙述中正确的是________。
( C )
10、设变量x和y均已正确定义并赋值。以下if语句中,在编译时将产生错误信息的是________。
三、循环结构 (共10题,每题1分,共计10分)
( B )
1、若i、j已定义成int型,则下列程序段中内循环体的总执行次数是________。
for(i=6;i>0;i--) for(j=0;j<4;j++)
{
…
}
( C )
2、以下程序段________. x=-1;
do
{
x=x*x;
}
while(!x);
( B )
3、定义如下变量: int n=10; 则下列循环的输出结果是________。 while(n>7)
{
n--;
printf("%d\n",n);
}
( D )
4、假定等级和分数有以下对应关系: 等级: a 分数: 85 ~ 100 等级: b 分数: 60 ~ 84 等级: c 分数: 60 以下 对于等级 grade 输出相应的分数区间,能够完成该功能的程序段是 __________.
( B )
5、若 i 为整型变量 , 则以下循环语句的循环次数是 ____. for(i=2;i==0;) printf("%d",i--);
( D )
6、c语言中下列叙述正确的是_______。
( C )
7、若a和b均是整型变量并已正确赋值,正确的switch语句是________。
( C )
8、以下不正确的是 ______。
( C )
9、有以下程序
#include<stdio.h>
main ()
{
int i, j, x = 0;
for (i = 0; i < 2; i++)
x++;
for (j = 0; j <= 3; j++)
{
if (j % 2)
continue;
x++;
x++;
}
printf ("x=%d\n", x);
}
程序执行后的输出结果是______。
( D )
10、下列语句哪些不属于循环语句?
四、数组/指针数组 (共10题,每题1分,共计10分)
( D )
1、合法的数组定义是 __________.
( C )
2、若有以下说明 : char s1[ ]={"tree"
} ,s2[]={"flower"};, 则以下对数组元素或数组的输出语句中 , 正确的是 _______ .
( C )
3、在c语言中引用数组元素时,其数组下标的数据类型只能是________。
( D )
4、已知:char s[100]; int i; 则引用数组元素的错误的形式是________。
( A )
5、已知有数组定义 char a[3][4]; 下列表达式中错误的是________。
( B )
6、不能把字符串"hello!"赋给数组b的语句是______。
( D )
7、在执行int arr[][3] = {1,2,3,4,5,6 },语句后,arr[1][0]的值为________。
( A )
8、算法指的是________。
( C )
9、若有定义: int (*p)[4]; 则标识符p 。
( D )
10、若有说明: int a[3][4]={0};则下面正确的叙述是()。
五、字符串/字符串指针 (共10题,每题1分,共计10分)
( A )
1、下列字符串是标识符的是________。
( C )
2、设有定义:char s[81]; int i=0; 以下不能将一行(不超过80个字符)带有空格的字符串正确读入的语句或语句组是________。
( B )
3、以下程序段的执行结果为
#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);
}
( B )
4、有以下程序
#include<stdio.h>
main()
{
char s[]="012xy\08s34f4w2";
int i, n=0;
for(i=0; s[i]!=0; i++) if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n", n);
}
程序运行后的输出结果是______。
( D )
5、以下程序运行后的输出结果是
main( )
{
char s[]="ABCD",*p;
for(p=s+1;p<s+4;p++)printf("%s\n",p);
}
( B )
6、字符串"xyz"在内存占用的字节数是______。
( C )
7、判断两个字符串是否相等,正确的表达方式是________。
( A )
8、下面程序段输出两个字符串中对应相等的字符。请分析程序填空。
char x[]="programming";
char y[]="fortran";
int i=0;
while (x[i]!='\0'&&y[i]!='\0')
if (x[i]==y[i]) printf("%c", _____);
else i++;
( A )
9、从键盘上输入某字符串时,不可使用的函数是()。
( B )
10、以下语句中,不能实现回车换行的是()。
六、函数/函数指针 (共10题,每题1分,共计10分)
( C )
1、有以下程序(strcpy为字符串复制函数,strcat为字符串连接函数):
main()
{
char a[10]="abc",b[10]="012",c[10]="xyz";
strcpy(a+1,b+2);
puts(strcat(a,c+1));
}
程序运行后的输出结果是________。
( C )
2、当用户要求输入的字符串中含有空格时,应使用的输入函数是________。
( A )
3、以下对c语言函数的有关描述中,正确的是________。
( C )
4、若定义了以下函数:
void f(……)
{
……*p=(double*)malloc(10*sizeof(double));
……
}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调函数,则形参p的正确定义应当是______。
( C )
5、设有以下语句:char str1[]="string",str2[8],*str3,*str4="string"; 则下列选项中,______不是对库函数strcpy的正确调用,此库函数用来复制字符串。
( B )
6、以下对局部变量描述错误的是________。
( A )
7、关于函数参数,说法正确的是________。
( B )
8、以下叙述中错误的是________。
( D )
9、函数的形式参数隐含的存储类型说明是________。
( B )
10、c语言中不可以嵌套的是________。
七、指针 (共10题,每题1分,共计10分)
( B )
1、下列数据中为字符串常量的是________。
( B )
2、若要求从键盘读入含有空格字符的字符串,应使用函数
( D )
3、调用函数时,当实参和形参都是简单变量时,它们之间数据传递的过程是 __________.
( B )
4、有如下函数调用语句 func(rec1,rec2+rec3,rec4, rec5); 该函数调用语句中 , 含有的实参个数是 __________.
( D )
5、请阅读程序:
#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<回车>,则输出结果是______。
( D )
6、下列能正确定义字符串的语句是________。
( D )
7、若有定义:char*x="abcdefghi"; 以下选项中正确运用了strcpy函数的是______。
( C )
8、以下程序中函数f的功能是将n个字符串,按由大到小的顺序进行排序。
#include <string.h>
void f(char p[][10],int n)
{
char t[20];
int i,j;
for(i=0;i<n-1;i++)
for (j=i+1;j<n;j++)if(strcmp(p[i],p[j])<0)
{
strcpy(t,p[i]);
strcpy(p[i],p[j]);
strcpy(p[j],t);
}
}
main()
{
char p[][10]={"abc","aabdfg","abbd","dcdbe","cd"};
f(p,5);
printf("%d\n",strlen(p[0]));
}
程序运行后的输出结果是______。
( A )
9、若定义语句: int b[ ]= { 1,2,3,4,5},*p=b ; 则表达式*p++ 的值是________。
( A )
10、以下函数调用语句中实参的个数是()。 func((e1,e2),(e3,e4,e5));
八、结构体 (共10题,每题1分,共计10分)
( B )
1、有以下程序
#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 )
2、设有以下说明语句
typedef struct
{
int n;
char ch[8];
}
per;
则下面叙述中正确的是________。
( C )
3、设有如下枚举类型定义: enum language
{
basic=3 , assembly , ada=100 , cobol , fortran
};
枚举量 fortran 的值为 。
( B )
4、有以下定义和语句:
struct students {
int num;
char name[20];
char c;
struct {
int grade1;
int grade2;
} s;
};
struct students w,*pw;
*pw=w;
下列赋值语句不正确的是________。
( C )
5、设有以下语句:
typedef struct tt { char c; int a[4]; } cin; 则下面叙述中正确的是________。
( B )
6、有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。则不能把结点b连接到结点a之后的语句是 struct node char data; struct node*next; a,b,*p=&a,*q=&b;
( A )
7、以下程序的运行结果是
#include"stdio.h"
main()
{
struct date {
int year, month, day ;
} today;
printf("%d\n",sizeof(struct date));
}
( D )
8、有如下定义: struct student
{
char name[10];
int age;
char gender;
}
std[3], *p=std;
则以下各输入语句中错误的是________。
( A )
9、以下叙述中正确的是________。
( C )
10、有以下程序
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;
int i;
float sum=0;
p=s+2;
for(i=0;i<3;i++)sum=sum+p->score[i];
printf("%6.2f\n",sum);
}
程序运行后的输出结果是________。
九、程序题 (共10题,每题1分,共计10分)
( B )
1、若有以下程序段: int a=0,b=0,c=0; c=(a-=a-5),(a=b,b+3); printf("%d,%d,%a",a,b,c);执行后的输出结果是________。
( A )
2、分析以下程序的输出结果是________。
main()
{
int a=5,b=-1,c;
c=adds(a,b);
printf("%d",c);
c=adds(a,b);
printf("%d\n",c);
}
int adds(int x,int y)
{
static int m=0,n=3;
n*=++m;
m=n%x+y++;
return(m);
}
( B )
3、有以下程序
main() {
int i, j,m =55;
for(i=l;i<3;i++) for(j=3;j<=++) m=m%j;
printf("%d\n",m);
}
程序的运行结果是________。
( A )
4、有以下程序
#include <stdio.h>
#include <string.h>
void fun(char *s[ ],int n)
{
char *t;
int i,j;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strlen(s[i])>strlen(s[j]))
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
main()
{
char *ss[]={"bcc","bbcc","xy","aaaacc","aabcc"};
fun(ss,5);
printf("%s,%s\n",ss[0],ss[4]);
}
程序的运行结果是________。
( A )
5、执行下面程序时 , 若从键盘输入 "2<cr>" ,则程序的运行结果是 __________.
#include <stdio.h>
void main( )
{
int k;
char cp;
cp=getchar( );
if (cp>='0' && cp<='9') k=cp-'0';
else if (cp>='a' && cp<='f') k=cp-'a'+10;
else k=cp-'a'+10;
printf("%d\n",k);
}
( C )
6、以下程序的输出结果是
main ( ) {
double d=3.2;
int x,y;
x=1.2;
y=(x+3.8)/5.0;
printf("%d\n",d*y);
}
( D )
7、有以下程序
main()
{
char a[]={'a','b','c','d','e','f','g','h','\0'};
int i,j;
i=sizeof(a);
j=strlen(a);
printf("%d,%d\n",i,j);
}
程序运行后的输出结果是______。
( B )
8、有以下程序
main()
{
char a1='m',a2='m';
printf("%c\n",(a1,a2));
}
以下叙述中正确的是______。
( C )
9、以下程序的输出结果是________。
main()
{
int a=100;
printf("%d\n",++a);
}
( C )
10、执行以下程序后的输出结果是________。
int w=3,z=7,x=10;
printf("%d",x>10?x+100:x-10);
printf("%d",w++||z++);
printf("%d",!w>z);
printf("%d",w&&z);
相关标签:
- C语言
- 广西民族大学
- 专升本考题