中国戏曲学院C语言程序设计专升本

本试卷为中国戏曲学院C语言程序设计专升本,题目包括:单项选择题。

覆盖的内容包括:理论题,基础知识,控制结构,循环结构,指针,数组/指针数组,字符串/字符串指针,函数/函数指针,程序题,结构体,文件。

本卷包括如下题型:

一、单项选择题

C语言程序设计专升本

一、单项选择题 (共50题,每题2分,共计100分)

(  C  )
1、有一函数, ,以下程序段中不能根据x值正确计算出y值的是________。
A、if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
B、y=0;
if(x>0) y=1;
else if(x<0) y=-1;
C、y=0;
if(x>=0);
if(x>0) y=1 ;
else y=-1;
D、if(x>=0)
if(x>0) y=1;
else y=0;
else y=-1;
(  A  )
2、c 源程序中不能表示的数制是________。
A、二进制
B、八进制
C、十进制
D、十六进制
(  B  )
3、若有定义语句:int a[3][6]; ,按在内存中的存放顺序,a数组的第10个元素是________。
A、a[0][4]
B、a[l][3]
C、a[0][3]
D、a[1][4]
(  A  )
4、在c语言中对于实型数组,其每个数组元素的类型是________。
A、实型
B、整型
C、可以为任何类型
D、不确定
(  C  )
5、在c语言的循环语句for,while,do-while语句中,用于直接中断最内层循环的语句是:________。
A、switch
B、continue
C、break
D、if
(  A  )
6、若程序中定义了以下函数 double myadd(double a,double b)
{
return (a+b);
}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是________。
A、double myadd(double a,b);
B、double myadd(double,double);
C、double myadd(double b,double a);
D、double myadd(double x,double y);
(  C  )
7、有以下程序
#include <stdio.h>
main()
{
int a[]={2,3,5,4},i;
for(i=0;i<4;i++)
switch(i%2)
{
case 0: switch(a[i]%2)
{
case 0:a[i]++;
break;
case 1:a[i]--;
}
break;
case 1:a[i]=0;
}
for(i=0;i<4;i++) printf("%d ",a[i]);
printf("\n");
}
程序运行后的输出结果是________。
A、3 3 4 4
B、2 0 5 0
C、3 0 4 0
D、0 3 0 4
(  D  )
8、在定义 int a[10]; 之后,对 a 的引用正确的是______。
A、a[10]
B、a[6.3]
C、a(6)
D、a[10-10]
(  D  )
9、在浮点数编码表示中, (1) 在机器数中不出现,是隐含的。
A、阶码
B、符号
C、尾数
D、基数
(  A  )
10、下列不是合法的c语言语句是________。
A、a=5
B、int i;i++;
C、;
D、;
(  C  )
11、若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10 },*p=a; 则值为6的表达式是_______。
A、*p+6
B、*(p+6)
C、*p+=5
D、p+5
(  A  )
12、一个c程序由函数a( ),b( ),c( )和函数p( )构成,在函数a( )中分别调用了函数b( )和函数c ( ),在函数b( )中调用了函数a( ),且在函数p( )中也调用了函数a( ),则可以说
A、函数B( )中调用的函数A( )是函数A( )的间接递归调用
B、函数A( )被函数B( )调用是直接递归调用
C、函数P( )直接递归调用了函数A( )
D、函数P( )中调用的函数A( )是函数P( )的嵌套
(  D  )
13、已知3个字符为:a、x和5,按它们的ascii码值升序排序,结果是________。
A、5<a<X
B、a<5<X
C、X<a<5
D、5<X<a
(  B  )
14、c语言中错误的int类型常数是________。
A、123
B、1F7
C、038
D、OxAF
(  D  )
15、下列函数原型声明中错误的是________。
A、void Fun(int x=0,int y=0);
B、void Fun(int x,int y);
C、void Fun(int x,int y=0);
D、void Fun(int x=0,int y);
(  A  )
16、在c程序中,判断逻辑值时,分别用( )表示逻辑值"真"、"假"。
A、非0 0
B、0 1
C、非0非0
D、1 1
(  A  )
17、下列哪个赋值语句是不正确的
A、float f=11.1;
B、double d=5.3E12;
C、float d=3.14f;
D、double f=11.1E10f;
(  C  )
18、对于ascii 码在机器中的表示,下列说法正确的是________。
A、使用8位二进制代码,最右边一位是0
B、使用8位二进制代码,最右边一位是1
C、使用8位二进制代码,最左边一位是0
D、使用8位二进制代码,最左边一位是1
(  D  )
19、下列字符串中,正确的c标识符是________。
A、foo-1
B、2b
C、new
D、256
(  C  )
20、程序的基本控制结构是______。
A、顺序结构,多分支结构和单分支结构
B、顺序结构,支结构和循环结构
C、顺序结构,选择结构和循环结构。
D、单行结构和多行结构。
(  A  )
21、下列定义数组的语句中,正确的是______。
A、#define N 10
int x[N];
B、int N=10;
int x[N];
C、int x[0...10];
D、int x[];
(  B  )
22、如果一个表达式包含算术运算、关系运算、逻辑运算和字符运算时,运算的先后顺序是________。
A、算术运算→关系运算→逻辑运算→字符运算
B、算术运算→字符运算→关系运算→逻辑运算
C、逻辑运算→关系运算→算术运算→字符运算
D、字符运算→算术运算→逻辑运算→关系运算
(  D  )
23、在c语言程序中
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义和调用均可以嵌套
C、函数的定义和调用均不可以嵌套
D、函数的定义不可以嵌套,但函数的调用可以嵌套
(  B  )
24、若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的正确排列次序是________。
A、sizeof,&=,<<,^
B、sizeof,<<,^,&=
C、^,<<,sizeof,&=
D、<<,^,&=,sizeof
(  B  )
25、下列二维数组初始化语句中,正确且与语句int a[][3]= { 1,2,3,4,5 }等价的是________。
A、int a[2][]={{1,2,3},{4,5}};
B、int a[][3]={1,2,3,4,5,0};
C、int a[][3]={{1,0},{2,0},{3,0}};
D、int a[2][]={{1,2,3},{4,5,6}};
(  D  )
26、若有以下定义:int a[2][3]= { 2,4,6,8,10,12 } 则以下描述不正确的是 ______。
A、*(a+1)为元素a[1][0]的指针
B、a[1]+1为元素a[1][1]的指针
C、*(a+1)+2为元素a[1][2]的指针
D、*a[1]+2的值是12
(  A  )
27、有以下程序
#include <stdio.h>
main()
{
int a=7;
while(a--);
pfintf("%d\n",a);
}
程序运行后的输出结果是________。
A、-1
B、0
C、1
D、7
(  A  )
28、下列对字符数组进行初始化的语句正确的是________。
A、char a []="Hello";
B、char a[][]={'H','e','1','1','o');
C、char a[5]="Hello";
D、char a[2][5]={"Hello", "World"};p
(  A  )
29、下述程序执行的输出结果是________。
#include<stdio.h>
main() {
char a[2][4];
strcpy(a,"are");
strcpy(a[1], "you");
a[0][3]='&';
printf("%s\n",a);
}
A、are&you
B、you
C、are
D、&
(  D  )
30、char型常量在内存中存放的是________。
A、二进制代码值
B、十进制代码值
C、十六进制代码值
D、ASCⅡ代码值
(  A  )
31、设有数组定义:char array[]="china"; 则数组array所占的空间为________。
A、6字节
B、5字节
C、4字节
D、7字节
(  D  )
32、分析下列程序,其最终执行结果是______。
main()
{
int n[3],i,j,k;
for(i=0;i<3;i++)n[i]=o;
k=2;
for(i=0;i<k;i++) for(j=0;j<k;j++) n[j]=n[i]-1;
printf("%d\n",n[0]);
}
A、-2
B、-1
C、0
D、-3
(  D  )
33、设有语句: x=inputbox("输入数值","0","示例") 程序运行后,如果从键盘上输人数值10并按回车键,则下列叙述中正确的是______。
A、变量x的值是数值10
B、在InputBox对话框标题栏中显示的是“示例”
C、0是默认值
D、变量x的值是字符串“10”
(  D  )
34、有以下程序
main()
{
char a,b,c,*d;
a='\';
b='\xbc';
c='\0xab';
d="\0127";
printf("%c%c%c%c\n",a,b,c,*d);
}
编译时出现错误,以下叙述中正确的是________。
A、程序中只有a='\';语句不正确
B、b='\xbc';语句不正确
C、d="\0127";语句不正确
D、a='\';和 c='\0xab';语句都不正确
(  B  )
35、有以下程序
#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);
}
程序运行后的输出结果是______。
A、0
B、3
C、7
D、8
(  B  )
36、下面关于主程序的说法,错误的是________。
A、a.next=q;
B、p.next=&b;
C、p->next=&b;
D、(*p).next=q;
(  B  )
37、以下选项中,能定义m为合法的结构体变量的是______。
A、typedef struct abc {
double a;char b;} m;
B、struct {
double a;char b;}m;
C、struct ABC {
double a;char b;} ABC m;
D、typedef ABC{
double a;char b; } ABC m;
(  C  )
38、以下四个程序中,完全正确的是______。
A、#include <stdio.h>
main(); {/*programming*/ printf("programming!\n");}
B、#include<stdio.h>
main()
{/*/programming/*//printf("programming!\n");}
C、#include <stdio.h>
main()
{/*programming*/printf("programming!\n");}
D、include<stdio.h>
main()
{/*/*programming*/*/printf("programming!\n");}
(  B  )
39、输出"%%"正确的是________。
A、printf("%%");
B、printf("%%");
printf("%c",37);
C、printf("\%\%");
D、printf("%%\%");
(  A  )
40、若有定义语句:char c='\101'; 则变量 c 在内存中占()
A、1 个字节
B、2 个字节
C、3 个字节
D、4 个字节
(  C  )
41、若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确表示该代数式的c语言表达式是______。
A、sqrt(abs(n^x+e^x))
B、sqrt(fabs(pow(n,x)+pow(x,e)))
C、sqrt(fabs(pow(n,x)+exp(x)))
D、sqrt(fabs(pow(x,n)+exp(x)))
(  C  )
42、下列if语句中,不正确的是________。
A、if(x>y);
B、if(x==y) x+=y;
C、if(x!=y) scanf("%d",&x) else x=1;
D、if(x
(  C  )
43、经下列语句定义后,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在 微机上的值分别为________。
char x=65;
float y=7.3;
int a=100;
double b=4.5;
A、2,2,2,4
B、1,2,2,4
C、1,4,4,8
D、2,4,2,8
(  C  )
44、c语言源程序文件经过c编译程序编译连接之后生成一个后缀为()的可执行文件
A、.c
B、.obj
C、.exe
D、.bas
(  B  )
45、c语言源程序文件经过c编译程序编译后生成的目标文件的后缀为
A、.c
B、.obj
C、.exe
D、.bas
(  C  )
46、有以下程序
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);
}
程序运行后的输出结果是________。
A、250.00
B、250
C、285.00
D、285
(  A  )
47、下面不能正确进行字符串赋值操作的语句是________。
A、char s[5]={"ABCDE"};
B、char s[5]={'A','B','C','D','E'};
C、char *s;s="ABCDEF";
D、char *s; scanf("%s",s);
(  A  )
48、定义如下变量和数组: 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]);
A、3 5 7
B、3 6 9
C、1 5 9
D、1 4 7
(  D  )
49、下面描述正确的是________。
A、两个字符串包含的字符个数相同时,才能比较字符串
B、字符个数多的字符串比字符个数少的字符串大
C、字符串"STOP" 与"STOP■"相等
D、字符串"That" 小于字符串"The"
(  B  )
50、下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔。请分析程序填空。
#include<stdio.h>
main()
{
char s[80],c1,c2=' ';
int i=0,num=0;
gets(s);
while(s[i]!='\0')
{
c1=s[i];
if( ) num++;
i++;
c2=c1;
}
printf("there are %d words.\n",num);
}
A、c1==' '&&c2==' '
B、c1!=' '&&c2==' '
C、c1==' '&&c2!=' '
D、c1!=' '&&c2!=' '