计算机应用类对口升学2013年11月考试题及答案(2)

2019-03-22 17:09

}

3、下面程序的输出结果为 3 。 #include main( ) { struct st { int x; unsigned a:2; unsigned b:2; }st1,st2;

printf(\}

? 考点:位段有关知识。

? 分析:在本例中涉及到位段定义的知识。位段又称位域或位字段,此种定义可以使

若干个结构体成员共用一个或几个字节,其中每个成员占用若干二进制位。位段定义和普通结构体定义类似,只是每个成员附加二进制位数说明,如: struct stru { unsigned a :2; unsigned b :4; unsigned :0; unsigned d :2; };

其中位数为0的无名字段的含义是跳过该字节剩余的位不用,所以上述中stru所占的字节数为2。注意:位域成员通常没有独立的存储单元,因此诸如&st1.a,&st2.b之类对位域成员取地址的运算是非法的。另外,位域成员只能是int或unsigned类型,其它类型都是非法的,而且位域成员也不能排成数组,如:unsigned c[2]:2是错误的。

本例中,a和b各占用2个二进制位,不够一个字节,系统将边界调整为整数,加上int型变量x占用的2个字节,共占用3字节。 4、struct stu { char[10]; float score[3]; }; main()

{ struct stu s[3]={{\ {\ {\ int i; float sum=0;

for(i=0;i<3;i++)

sum=sum+p->score[i];

printf(\ }

程序运行后的输出结果是 270.00 。 ? 考点:结构体变量成员的引用。

? 分析:本题中,s为一个结构体数组,p为结构体指针。语句p=s使p指向数组s

的第一个元素即s[0]。for循环的作用是将p所指向的单元累加到变量sum中,作用相当于相当于语句s[0].score[0]+ s[0].score[1]+ s[0].score[2]。

5、以下程序段的执行结果是 2,13 。

#include main()

{ enum month (Jan, Feb, Mar, Apr=8, May, Jun, Jul, Aug, Sept, Oct , Nov, Dec); enum month mon1=Mar, mon2=Sept; printf(“%d, %d\\n”, mon1, mon2) ; }

6、以下程序的执行结果是 1 #include main( )

{ int x=35;

Printf(“%d\\n”, (x&15)&&(x | 15)); }

7、以下程序段的执行结果是 8 。 typedef union {

long x[2]; int y[4]; char z[8]; }TYPE; TYPE a ; Main()

{ printf(“%d\\n” , sizeof(a); } 8、以下程序的执行结果是 无显示 main( )

{ int a=11, b=10; a -= b; a <<= b; }

9、以下程序的功能是 将一个磁盘文件复制到另一个磁盘文件中 。

#include main()

{ FILE *fp1,*fp2;

fp1=fopen(\

fp2=fopen(\while(!feof(fp1)) fputc(fgetc(fp1),fp2); fclose(fp1); fclose(fp2);

}

? 考点:文件打开函数和文件读写函数。

? 分析:本题中以读的方式打开file1文件,以写的方式打开file2文件,再将输出

语句fputc(fgetc(fp1),fp2)放入循环体内,表示只要fp1指向的文件没有结束,就从该文件中读出一个字符送到fp2指向的文件中。

四、程序填空题(每空3分,共分)

1、执行下面的程序后,a的值为 。 main()

2、以下程序段的输出结果是 。 { int a,b;

int x=3; for (a=1,b=1;a<=100;a++)

do { if(b>=20)break;

{ printf(\ if(b%3==1)

while(!(--x)); {b+=3;

A、1 B、3 0 C、1-2 D、死循环 continue;

}b-=5; } }

A、7 B、8 C、9 D、10

3、执行下列程序后,输出结果是 。

#include

#define MAX_COUNT 4 void fun(); void main() { int count;

for(count=1;count<=MAX_COUNT;count++) fun();

}

1、以下程序中的宏SWAP(type,a,b)实现将任意同类型的两个数进行交换。程序中调用它交换2个字符型和2个单精度型数据。请填空。

#define SWAP(type,a,b) {【1】;t=a;a=b;b=t;}

#include void main() {

void fun()

{ static int i; i+=2;

printf(\ }

char ch1='A',ch2='B'; float f1=1.2,f2=2.3; SWAP(【2】,ch1,ch2); SWAP(【3】,f1,f2); printf(\ printf(\}

答案:【1】type t 【2】char 【3】float 2、以下程序完成链表的输出,请填空。 void print(head) struct stu *head; { struct stu *p; p=head;

if( 【1】 ) do

{ printf(\p=p->next; }while( 【2】 ); }

? 答案:【1】p!=NULL 【2】p!=NULL

3、下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空。

#include FILE *fp; main( ) { int i,j;

if((fp=fopen( 【1】 ,\for(i=0;i<10;i++) { scanf(\

fwrite(&j,sizeof(int),1, 【2】 ); }

fclose(fp);

}

? 考点:文件打开函数和文件写函数。

? 分析:将键入的数据存到指定文件,必须先打开文件,因此第一个空应该填入打开

文件的文件名;根据fwrite的函数原型可以知道,最后一个参数应该是文件指针,所以填入fp。

? 答案:【1】\【2】fp

4、以下程序功能是用“追加”的形式打开aa.txt查看文件指针的位置,然后向文件写入“data”再查看文件指针的位置。

#include main()

{ 【1】 ; long position;

fp=fopen( 【2】 ); position=ftell(fp);

printf(\fprintf( 【3】 ); position=ftell(fp);

printf(\fclose(fp); }

答案:【1】FILE *fp 【2】\ 【3】fp,\

5、菲波纳契数列中的头两个数是1和1,从第三个数开始,每个数等于前两个

数的和。下述程序计算此列数列的前50个数,且每行输出10个数。请填空。

#include void main()

{ int f,f1=1,f2=1; int i;

printf(\for(i=3;i<=50;i++) { f= 【1】 ; printf(\

if( 【2】 ) printf(\f1=f2;

【3】 ; } }

答案:【1】 【2】 【3】 6、已知如下公式:

Π/2 = 1+1/3+(1/3)(2/5)+ (1/3)(2/5)(3/7)+ (1/3)(2/5)(3/7)(4/9)+…

函数pi的功能时根据上述公式计算满足精度要求的Π值。请填空。

double pi(double eps) {

double s=0.0,t=1.0; int n;

for(n=1; 【1】 ; n++) { s+=t;

t=n*t/(2*n+1) }

return 【2】 ; }

答案:【1】 【2】


计算机应用类对口升学2013年11月考试题及答案(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:车床安全质量标准化

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: