资源描述
一 选择题(75分)
(1)程序的执行是从( )
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
E)本程序文件的第一行代码开始,到本程序的最后一行代码结束
(2)以下叙述不正确的是 ( )
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
E)变量和函数都不是C程序的重要构件
(3)在C 语言中(以16 位PC 机为例),5 种基本数据类型的存储空间长度的排列顺
序为 ( )
A)char<int<long =float<double
B)char=int<1ong int<=float
C)char< int <1ong int=float=double
D)char=int =1ong int<=float*7
E)long>int>short>double>float
(4)下面程序的运行结果是:( )
#include <stdio.h>
void main(){
int a;
long b;
float f;
double d;
char c;
printf("%d,%d,%d,%d,%d",sizeof(a),sizeof(b),sizeof(f),sizeof(d),sizeof(c));
}
A)4,4,4,8,1 B)2,4,4,8,1
C)2,4,4,4,1 D)4,4,4,4,1
(5)下面四个选项中,均是不合法的整型常量的选项是 ( )
A)-0e1 B)-0Xcde
C)-017 D)-068
E)0x11
(6)若有定义:int a=7,float x=2.5f,y=4.7f,则
表达式x+a%3*(int)(x+y)%2/4 的值是 ( )
A)2.500000 B)2.7500OO
C)3.500000 D) 0.000000
E)2.5
(7)在C语言中,char 型数据在内存中的存储形式是 ( )
A)补码 B)反码 C)原码 D)ASCII码 E)整型数字
(8)关于以下程序,叙述正确的是 ( )
void main()
{
char p[ ]={‘a’,’b’,’c’},q[10]={‘a’,’b’,’c’};
printf(“%d,%d\n”,strlen(p),strlen(q));
}
A)在给P和q 数组置初值时,系统自动添加字符串结束符,故输出的长度都为3
B)由于P数组中没有字符串结束符,长度不能确定,但q 数组中字符串长度为3
C)由于q 数组中没有字符串结束符,长度不能确定,但p数组中字符串长度为3
D)由于p和q 数组中都没有字符串结束符,长度都不能确定
E)输出的长度为7,3
(9)下列数据结构中,能用二分法进行查找的是 ( )
A)顺序存储的有序数组 B)已经做好排序的数组
C)没有做好排序的数组 D)所有有序的线性存储结构都可以用
E)以上说法都不对
(10)以下程序运行后的输出结果是 ( )
#include <stdio.h>
float f1(float n)
{
return n*n;
}
float f2(float n)
{
return 2*n;
}
void main()
{
float y1, y2,n=3.0;
y1=f2( f1(n) );
y2=f1(f2(n));
printf("%3.0f, %3.0f\n",y1,y2);
}
A 18, 6 B 16,16 C 4,8 D 18,36
(11)以下程序运行后的输出结果是 ( )
#include <stdio.h>
void fun(int a[],int i,int j)
{
int t;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;
fun(a,i,j);
}
}
void main()
{
int x[]={2,6,1,8},i;
fun(x,0,3);
for(i=0;i<4;i++)
printf("%2d",x[i]);
printf("\n");
}
A)1 2 6 8 B)8 6 2 1 C)8 1 6 2 D)8 6 1 2 E)2 6 1 8
(12)设已有定义: char *st="how are you"; 下列以下程序段中正确的是 ()
A)char a[11], *p=a; strcpy(p,&st[4]);
B) har a[11]; strcpy(++a, st);
C) har a[11]; a=st;
D) char a[], *p; strcpy(p=&a[1],st+2);
E) char a[], *p; strcpy(++a, st);
(13)下列程序执行后的输出结果是( )
#include <stdio.h>
void func1(int i);
char st[]="hello,friend!";
void func2(int i)
{
printf("%c",st[i]);
if(i<3)
{
i+=2;
func1(i);
}
}
void func1(int i)
{
printf("%c",st[i]);
if(i<3)
{
i+=2;
func2(i);
}
}
void main()
{
int i=0;
func1(i);
printf("\n");
}
A)hello B)hel C)hlo D)hl E)h
(14)以下程序:
#include <stdio.h>
void main( int argc, char *argv[])
{
while(--argc>0)
printf("%s",argv[argc]);
printf("\n");
}
经编译和连接后生成可执行文件PROG.EXE,如果在此可执行文件所在目录的DOS
提示符下键入:PROG ABCDEFGH IJKL<回车>,则输出结果为( )
A)ABCDEFG B)IJHL
C)ABCDEFGHIJKL D)IJKLABCDEFGH
E)IJKLABCDEFGH PROG
(15)以下程序输出结果是 ( )
#include <stdio.h>
struct stu
{
int x ;
int y;
} stu1 ;
int dt[4]={ 10 , 20 , 30 , 40 };
struct stu a[4]={50,dt[0],60, dt[1],70,dt[2],70,dt[3]};
void main()
{
stu1.x=a[0].x;
stu1.y=a[3].y;
printf("%d," , ++stu1.x);
printf("%d," , (stu1.x)++);
printf("%d\n" , ++(stu1.y) );
}
A)51 ,51 ,41 B)51 ,52 , 41 C)50 , 51 , 41
D)50 , 51 , 40 E)50 , 51 , 60
二 编程题(25分)
1 编写一个程序,实现功能:S= 1+2+3+……+100 (10分)
2 编写一个程序,实现功能:输出一个九九乘法表 (15分)
展开阅读全文