c语言中可以通过三种运算方式,C语言试卷

C语言试题1

一 填空题(15分)

1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为(  )。

2.设 int a=7,b=9,t;执行完表达式t=(a>b)?a:b后,t的值是(   )。

3.下面程序段的输出结果是(     )。

int a=1234; a=a&0377; printf(“%d %o\n”,a,a);

4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是(         )。

char a[3];

5.设有以下宏定义,则执行赋值语句 a=PP*20;(a为int型变量)后,a的值是(   )。

#define PR 80

#define PP PR+403

6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:( )、( )和(   )。

7.在C文件中,数据存在的两种代码形式是(     )和(     )。

8.C语言中调用(   )函数打开文件,调用(   )函数关闭文件,调用(   )函数可实现文件的随机读写。

9.若有int a[3]={10,12,30};则a+1是(   )的地址,*(a+2)=(   )。

二 判断对错(5分,对的划“√”,错的划“×”)

1.在Turbo C中,整型数据在内存中占2个字节。( )

2.表达式1/4+2.75的值是3。( )

3.结构体类型只有一种。( )

4.函数若无返回值,则它一定无形参。( )

5.C语言只能处理文本文件和二进制文件。( )

三 选择题(20分)

1.设 int a=12; 表达式a+=a-=a*=a的值是(  )。

A 12     B 144     C 0     D 132

2.以下程序的输出结果是(  )。

main( )

{ int a=011;

printf(“%d\n”,++a);

}

A 12   B 11     C 10     D 9

3.以下程序的输出结果是(  )。

#define ADD(x) (x)+(x)

main()

{   int a=4,b=6,c=7,d=ADD(a+b)*c;

printf(“d=%d”,d);

}

A d=70     B d=140   C d=280     D d=80

4.下面的选项中正确的赋值语句是(char a[5],*p=a;)(  )。

A p=“abcd”;     B a=“abcd”;   C *p=“abcd”;     D *a=“abcd”;

5.若k为整形,则while循环执行(  )次。

k=2; while(k==0) printf(“%d”,k);   k--; printf(“\n”);

A 10     B 9   C 0   D 1

6.数组名作为实参传递给形参时,数组名被处理为(  )。

A 该数组的长度 B 该数组的元素个数 C 该数组的首地址 D 该数组中各元素的值

7.两个指针变量不可以(   )。

A. 相加     B 比较   C 相减   D 指向同一地址

8.若有以下程序段,则值为6的表达式是(   )。

struct st{ int n;struct st *next;};

static struct st a[3]={5,&a[1],7,&a[2],9,‘\0’},*p; p=&a[0];

A p++->n     B p->n++   C (*p).n++   D ++p->n

9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句( )。

A fp=fopen("file","r");   B fp=fopen("file","w");

C fp=fopen("file","r+");   D fp=fopen("file","w+");

四 写出下列程序的运行结果。(28分)

1.main( )

{ int a[6]={10,6,23,-90,0,3},i;

invert(a,0,5);

for(i=0;i<6;i++) printf(“%d,”,a);

printf(“\n”);

}

invert(int *s,int i,int j)

{ int t;

if(i

{ invert(s,i+1j-1);

t=*(s+i);*(s+i)=*(s+j);*(s+j)=t;

}

}

2.f1(int a)

{ int b=0; static int c=3;

b+=1; c++;

return(a+b+c);

}

main()

{ int a=1,i;

char s1[10]=“java”,s2[10]=“basic”,s[10];

for(i=0;i<3;i++)   printf("%d ",f1(a));

printf(“\n”);

if(strcmp(s1,s2)) { strcpy(s,s1); puts(s);}

printf(“%d,%s\n”,strlen(s2),strcat(s2,s1));

}

3.#define MAX 100

main()

{ int f[MAX],i,j,k=2,m=5;

for(i=0;i<=m;i++)   f=1; f[k-1]=2;

for(i=k;i<=m;i++)

for(j=i-k;j<=i-1;j++) f+=f[j];

printf("%d%5d%5d\n",k,m,f[m]);

}

五 阅读下列程序,在   处填入适当内容,使程序完整。(32分)

1.求100~200间的全部素数。

(1)

main()

{ int m,k,i,n=0;

for(m=101;m<=200;m+=2)

{   if(n%10==0)   printf("\n");

k=sqrt(m);

for(i= (2) ;i<=k;i++)   if(m%i==0)     (3) ;

if(i== (4) )

{ printf("%d ",m);n++;}

}

}

2.用选择法对数组中的10个字符按由大到小排序。

void sort( (1) )

char a[ ]; int n;

{   int i,j,k;

char t;

for (i=0;i

{   (2) ;

for(j=i+1;j

if ( (3) )   k=j;

t=a[k];a[k]=a;a=t;}

}

main( )

{   char s[10];

int i;

for(i=0;i<10;i++)   scanf(“%c”,&s);

(4) ;

printf(“the sorted array:\n”);

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

printf(“%c”, (5) );

printf(“\n”);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值