试卷一(参考答案在后面!)
1,有以下程序
#include
void f(int a[],int i,int j) { int t; if(i<j)
{ t=a[i]; a[i]=a[j];a[j]=t; f(a,i+1,j-1); } }
void main( )
{ int i,aa[5]={1,2,3,4,5}; f(aa,0,4);
for(i=0;i<5;i++) printf(\}
执行后输出结果是
A)5,4,3,2,1, B)5,2,3,4,1 C)1,2,3,4,5, D)1,2,3,4,5
2,下面程序的输出结果是 ( ) #include
{ int x=2,y=1;
void f(int x,int y); f(x,y);
printf(“%d,%d”,x,y); }
void f(int x,int y) { y=x+y; x=x-y; }
A)3,1 B)2,1 C)1,3 D)1,2
3,以下程序的输出结果是 。 # include <stdio.h> void main()
{ int k=4,m=1,p;
p=func(k,m); printf(\ p=func(k,m); printf(\}
int a,b; func(a,b)
{ static int m=0,i=2;
i+=m+1; m=i+a+b; return(m); }
A) 8,17 B) 8,16 C) 8,20 D) 8,8
4,以下()是不正确的转义字符。
A.'\\\\' B.'\\' C.'081' D.'\\0'
5,在C语言中,int,char,和short三种类型数据所占用的内存 A.均为2个字节 B.由用户自己定义 C.由所用机器的机器字长决定 D.是任意的
6,有以下程序 main( ) {
int x=102,y=012;
printf(\} 执行后输出结果是
A)10,012 B)102,12 C)102,10 D)0102,10
7,下列程序的输出结果是 main( )
{ double d=3.2; int x,y;
x=1.2; y=(x+3.8)/5.0; printf(\\n\); } A)3 B)3.2 C)0 D)3.07
8,已知 int a; 那么 ﹠a表示
(A)变量名 (B)变量a的地址 (C)变量a的值 (D)其他
9,以下程序段中与语句k=a〉b?(b〉c?1:0):0;功能等价的是( )
A) if((a〉b) ﹠﹠(b〉c) ) k=1; else k=0; B) if((a〉b) ||(b〉c) ) k=1;else k=0;
C) if(a〈=b) k=0; else if(b〈=c) k=1; D) if(a〉b) k=1;else if(b〉c) k=1; else k=0;
10,当a=1,b=3,c=5,d=5时,执行下面一段程序后,x的值为 ??A) 1 B) 2 C) 3 D) 6 ?? if(a〈b)
?? if(c〈d) x=1; ?? else ?? if(a〈c)
?? if(b〈d) x=2; ?? else x=3; ?? else x=6;
?11,以下错误的if语句是 。 A) if(x〉y) z=x; B) if(x==y) z=0;
C) if(x!=y) printf(\D) if(x〈y) { x++;y--;}
12,有以下程序 main()
{ int i=10;
printf(\}
执行后输出结果是 A. 9 B. 10
C. 11 D. 8 ?
13,若x,i,j和k都是int型变量,则计算表达式x=(i=14,j=16,k=j)后,x的值为 A. 14 B. 16
C. 30 D. 56
14,设有以下程序段 int x=0,s=0;
while(!x!=0)s+=++x; printf(\); 则
A. 运行程序段后输出0 B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的 D. 程序段执行无限次
15,以下程序执行后输出结果是________。 int i;
for(i=0;i<3;i++) switch(i)
{ case 1: printf(\ case 2: printf(\ default: printf(\}
A) 011122 B) 012 C) 012020 D) 120
16,若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段_________。 A)for(i=1,p=1;i<=5;i++) p*=i; B)for(i=1;i<=5;i++){ p=1; p*=i;} C)i=1;p=1;while(i<=5){p*=i; i++;}
D)i=1;p=1;do{p*=i; i++; }while(i<=5);
17,以下叙述不正确的是
A. 一个C源程序可由一个或多个函数组成 B. 一个C源程序必须包含一个main函数 C. C程序的基本组成单位是函数
D. 在C程序中,注释说明只能位于一条语句的后面
18以下叙述不正确的是_________。 A. 分号是C语言的必要组成部分 B. C程序的注释可以写在句的后面 C. 函数是C程序的基本单位
D. 主函数的名字不一定用main表示
19,源程序要正确地运行,必须要有什么函数? A. printf函数 B. 自定义的函数 C. main函数 D. 不需要函数
20,不能把字符串:Hello!赋给数组b的语句是 A.char b[10]={’H’,’e’,’l’,’l’,’o’,’!’}; B.char b[10];b=\
C.char b[10];strcpy(b,\ D.char b[10]=\
21在C语言中,一维数组的定义方法为 类型说明符 数组名 A.[常量表达式] B.[整型常量] C.[整型变量]
D.[整型常量]或[整型表达式]
22,下列选项中错误的说明语句是
A. char a[]={′t′,′o′,′y′,′o′,′u′,′\0′}; B. char a[]={\\0\C. char a[]=\\0\D. char a[]=′toyou\0′;
23字符串常量不能直接赋值给字符数组,但可以通过____strcpy_____函数来实现。
24,下面程序段运行的结果__-1_____。 int y=2,a=1; do{
a*=y ; a++ ;
} while (y--); printf(\
25,
分析如下程序,此程序运行时输出结果是:20 #include
void test(int *x,int *y); void main() {
int a=10,b=20; test(&a,&b); printf(\}
void test( int *x,int *y) {
int t;
t=*x;*x=*y;*y=t; }
26分析如下程序,此程序运行时输出结果是:28 #include
struct u{ char *name; int age;
int income; }s;
s.name=\printf(\}
27,以下程序输出的结果是( 0 ) #include
int a=5,b=4,c=3,d; d=(a>b>c);
printf(\}
28,考生注意:先将源程序文件715.c复制到D盘中操作,操作完成后,将此文件复制回来(覆盖)!
要求:补充程序使得程序运行时完成以下功能:
计算2个数的立方差(结果=第一个数的立方减去第二个数的立方) 要求:
1)2个数由键盘输入
2)通过函数调用实现(计算方法在子函数中,通过主函数调用实现) 3)将结果显示出来