计算机语言(C)第3阶段测试题

更新时间:2023-03-18 19:21:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

江南大学现代远程教育2013年上半年第三阶段测试卷

一、选择题(每题2分,共30分)

1.对于基类型相同的指针变量,不能进行( A )运算。

A.+ B.- C.= D.==

2.C语言中文件的存取方式是( C )。

A.顺序存取 B.随机存取

C.a与b均可 D.a与b均不可

3. 函数AAA(s,t)

char *s,*t;

{ while(*t++);

t--;

while(*t++=*s++);

}

的功能是( D )。

A.求串的长度

B.比较两个串的大小

C.将串s复制到串t中

D.将串s连接到串t中

4.在16位IBM-PC机上使用C语言,如定义下列联合类型变量:

union data

{

int i;

char ch;

float f;

}a,b,c;

则联合变量,a,b,c名占用内存的字节数为( C )。

A.1 B.2 C.4 D.7

5.以下执行后显示的结果是( A )。

#include <stdio.h>

FILE *fp;

main()

{ int s=0,i,a[4]={15,25,33,58};

fp=fopen("data.txt","wb");

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

putw(a[i],fp);

fclose(fp);

fp=fopen("data.txt","rb");

for(i=1;i<4;i++)

s+=getw(fp);

printf("%d\n", s);

}

A. 73 B. 131 C. 116 D.106

6.下列有关C语言文件的说法正确的是( B )。

A.C语言文件是由记录组成

B.C语言文件被看作是一个字符(字节)的序列,称为流式文件

C.C语言有专门的文件操作命令

D.以上说法都不正确

7.若有“int a[][4]={1,2,3,4,5,6,7,8,9,10},*p=*(a+1);”,则值为9的表达式是( B )。

A.p+=3,*p++ B. p+=4,*(p++)

C. p+=4,*++p D. p+=4,++*p

8. 下列程序执行结果 C

main()

{

char s1[4]="12";char *p;

p=s1; printf("%c\n",*(p+1));

}

A.3 B.1 C.2 D.4

9.设有数组说明“int a[4][4];”,则不能等价表示的数组元素a[3][3]是( D )。

A.*(a[3]+3) B.*(*(a+3)+3)

C.* &a[3][3] D.(*(*(a+3))+3)

10.若有以下说明,则对结构体变量exp10中成员std的引用不正确的是( B )。 struct example

{

int std;

float std1;

}exp10,*p;

A.exp10.std B.example.std C.p->std D..(*p).std

11.设有“char s[]=”Program“,*p=s;”,则以下叙述中正确的是( C )。

A.数组s的内容与指针变量p中内容相同

B.数组s的长度与strlen(p)的值相等

C.p[5]的值等于s[5]的值

D.sizeof(s)等于sizefof(*p)

12.设有说明:

union data {

int i;float f;

struct {

int x;char y;

}s;

double d;

}a;

在16位微机环境下,int类型的整数占用两个字节,则变量a在内存中所占字节数为

( A )。

A. 8 B. 17 C. 9 D. 15

13.C语言联合类型在任何给定时刻( B )。

A. 所有成员一直驻留在结构中

B. 只能有一个成员驻留在结构中

C. 部分成员驻留在结构中

D. 没有成员驻留在结构中

14.以下枚举类型的定义中正确的是( B )。

A. enum a={one, two, three}; B. enum a {one=9, two=-1,three};

C. enum a={“one” , “two”, “three”}; D. enum a {“one”, “two”, “three”};

15. 现有C语言程序

main()

{ static int a[]={1,2,3,4,5,6}

int *p; int i;

p=a;

*(p+3)+=2;

printf("n1=%d,n2=%d\n:",*p,*(p+3));

}

其输出是____D____。

A.n1=1;n2=5 B.n1=2,n2=6

C.n1=1,n2=7 D.n1=1,n2=6

二、填空题(每空3分,共45分)

1.输入一个不包含空格的字符串,判断输入的字符串是否为回文,回文是相对中心左右对称的字符串,如:“abcba”和“abddba”是回文,而字符串“abcAa”不是回文。

#include”stdio.h”

int f(char *p)

{ char *p1, *p2; p1=p2=p;

while( *p2++);

;

{ if( ) return(0);

p1++; p2 --; }

return 1;}

main()

{char s[200]; printf(“输入一个字符串:”);

字符串:%s是回文!\n”,s);

else printf(“字符串:%s不是回文!\n”,s);}

2. 下面函数swap_p的功能是完成交换两个数的操作。请 按指定的顺序在题后的相应序号后填

上适当的内容,使之成为完整正确的函数。

swap_p(s,t)

int ;

{ int term;

term= ;*s= ;

}

3.程序输出的结果是 #include <string.h>

main()

{static char a[50]="test";

char b[40],*p;

p=a;

*(p+3)+=1;

strcpy(b,"abcdefg");

strcat(a,"string");

strncpy(b,a,5);

printf("n1=%c,n2=%c\t",*p,*(p+3));

printf("a=%s,b=%s\n",a,b);

}

4.[程序]:

main()

{union EXAMPLE{

struct {int x,y;}in;

int a,b;

}e;

e.a=1;e.b=2;e.in.x=e.a*e.b;e.in.y=e.a+e.b;

printf(“%d□%d\n”,e.in.x,e.in.y);

}

该程序输出的结果是 4□8 。

5.以下程序的运行结果是 baCBAcd

#include<stdio.h>

void bubble(char *str,int count)

{

int i,j=count;

char tmp;

while(j-->1)

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

if(str[i]<str[i+1])

{

tmp=str[i];

str[i]=str[i+1];

str[i+1]=tmp;

}

}

main()

{

char *str=“ABCabcd”;

bubble(str,5);

printf(“\n%s”,str);

}

6.[程序]:

main()

{ union {

int count[2];

char ch[4];

}un;

int I;

char letter=6;

for(I=0;I<4;I++)

un.ch[I]=letter++;

for(I=0;I<2;I++)

printf("%d:%x,",I,un.count[I]);

}

该程序输出的结果是 0:706,1:908 。

7.main()

{ char a[4][5]={'a','b','c','d','e',"fghi","name","test"};

char *p,*s;int j;

p=a[0];

s=a[2];

while(*p) p++;

while(*s) *p++=*s++;

for(j=0;j<4;j++)

printf("%s□□□",a[j]);

}

程序运行结果abcdefghinamee□□□fghinamee□□□amee□□□test□□□。

三、编程题(25分)

1. 的近似值可用以下公式求得:

2

6 1 111 2232n2

由以上公式可知,若n取值100000,则最后一项的值已为10-8,认为可达到精度要求,编一个程序实现求 的近似值,并把结果放在out.txt文件中。(10分)

#include <stdio.h>

#include <math.h>

main()

{ FILE *fp;

long I;

float S=0,pi;

If((fp=fopen(“myf2.out”,”W”))=NULL){

Printf(“can not open the file myf2.out!\n”);

exit(1);}

for(I=1;I<100000;I++)

s=s+1.0/(I*I);

pi=sqrt(6*s);

fprintf(fp,”%f”,pi);

fclose(fp);}

2.现有四个学生数据,每个学生数据结构包含姓名、学号和性别要求编一程序实现以学号为主键对四个学生的数据按从大到小的顺序排列。(15分)

struct student s1

for (j=0;j<4;j++)

{max=a[j].code; s=j;

for(k=j+1;k<4;k++)

if(a[k].code>max)

{ max=a[k].code; s=k;}

s1=a[j]; a[j]=a[s]; a[s]=s1;}

for(j=0;j<4;J++)

printf(“\n%s,%d,%c”,a[j].name,a[j].code,a[j].sex);}

main()

{ fun(); }

本文来源:https://www.bwwdw.com/article/0qfj.html

Top