以下标识符不符合c语言,C语言试题4

一、选择题

1.下列说法不正确的是_______。

A. 常量可以是具体的数值,也可以是专门说明的代表某个具体数值的标识符

B. 常量0123与常量123的值是一样的数

C. 浮点型数据也可以分为有符号浮点数和无符号浮点

D. 转义字符是以字符’\’开头的一个字符序列

2.下列标识符中,不符合C语言语法规范的是____________。

A. count

B. _abc1

C. a#12

D. Student

3.有定义:int a=5;float x=6.0,y=7.0;则表达式x+a%3*(int)(x+y)%2/4的值为________。

A. 2.500000

B.2.750000

C. 3.500000

D.6.000000

4.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=8,k=12)后,x的值为_________。

A. 4

B.8

C. 12

D. 2

5.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是____________。

A. -3

B. 9

C. -12

D. 6

6.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是________。

A. 把x和y按从大到小排列

B. 把x和y按从小到大排列

C. 无确定结果

D. 交换x和y中的值

7.假设整型变量a、b、c已经正确定义,并且已被赋予大于1的值,则下列表达式中能够正确表示代数式的是________。

A. 1/a*b*c

B.1/(a*b*c)

C. 1/a/b/(float)c

D.1.0/a/b/c

8.在x值处于–2~2,4~8时值为“真”,否则为“假”的表达式是____。

A. (2>x>–2)||(4>x>8)

B. ((x>=–2)&&(x<=2))||((x>=4)&&(x<=8))

C. (x<2)&&(x>=–2)&&(x>4)&&(x<8)

D. (x>–2)&&(x>4)||(x<8)&&(x<2)

9.在C语言程序中____________。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套。

B. 函数的定义不可以嵌套,但函数的调用可以嵌套。

C. 函数的定义和函数的调用均不可以嵌套。

D. 函数的定义和函数的调用均可以嵌套。

10.给出以下定义:

char x[]="abcdefg";

char y[]={'a','b','c','d','e','f','g'};

则正确的叙述为____________。

A. 数组x和数组y等价

B.数组x和数组y的长度相同

C. 数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

11.对下面三条语句(其中s1和s2为内嵌语句),正确的论断是____________。

(1) if (a) s1; else s2;

(2) if (a==0) s2; else s1;

(3) if (a! =0) s1; else s2;

A. 三者相互等价

B.(1)和(2)等价,但与(3)不等价

C. 三者互不等价

D.(1)和(3)等价,但与(2)不等价

12.已知:char c[8]=“bejing”,*s=c;则下面的输出语句中,错误的是____________。

A. printf( “%s\n”,s);

B. printf( “%s\n”,*s);

C. printf(“%c\n”,c[0]);

D. printf(“%d\n”,c[0]);

13.有以下的程序段: char a[10],b[]="China";a=b;printf("%s",a); 则____________。

A. 运行后将输出China

B. 运行后将输出Ch

C. 编译出错

D. 运行后将输出Chi

14.在C语言的函数调用中,如果数组名作为函数的实参,则传递给形参的是____________。

A. 数组全部元素的值

C. 数组全部元素的个数

D.数组第一个元素的值

15.C语言中,“文件包含”预处理命令有两种使用形式中,(1)#include”文件名”(双引号括起);(2)#include (尖角号括起)。其中格式(1)中,被包含文件的寻找方法是____________。

A. 直接按系统设定的标准方式搜索目录

B. 先在源程序所在目录搜索,如搜索失败则再按系统设定的标准方式搜索

C. 仅仅搜索源程序所在目录

D. 仅仅搜索当前目录

16.已知:int a [ 10 ];那么能对a数组元素正确引用的是____________。

A. a[10]

B.a[3.5]

C. a(5)

D.a[10-10]

17.假定一个函数的头部为“char *func(int n)”,则该函数返回值的类型是____________。

A.  int

B. int *

C.  char

D. char *

18.在C语言中,函数调用语句function((a, b, c), (d, e));中function函数的参数的个数是____________。

A. 4

B.5

C. 2

D.1

19.已有声明“char c='\72';”,则变量c包含____________个字符。

A.  1

B. 2

C.  3

D. 4

20.在C语言中,以下面____________打开方式作为fopen函数的参数,可以以只读的方式打开文本文件。

A. “rb”

B.“rt”

C. “wb”

D.“wt”

21.在C的表达式中,可以将某一类型的变量a强制转换成具有类型b的值,可写为________。

A. (b)a

B.a(b)

C. b(a)

D.(a)b

22.设有数组定义:char array[ ]=”China”;,则数组array所占的空间为________。

A. 4个字节

B.5个字节

C. 6个字节

D.7个字节

23.在说明 int *ptr[3] 中,标识符ptr         。

A. 说明不合法

B. 是一个指针数组名,每个元素是一个指向整型变量的指针

C. 是一个指针,它指向一个具有三个元素的一维数组

D. 是一个指向整型变量的指针

参考答案:

1.B

2.C

3.D

4.C

5.C

6.B

7.B

8.D

9.B

10.C

11.D

12.B

13.C

14.B

15.B

16.D

17.D

18.C

19.A

20.B

21. A

22. C

23. B

二、填空题

1.     数学式子a=b=c写成C语言的表达式为  (1)  。

2.     已知n为整型变量;当n赋值为  (2)  之后,执行do{putchar('a');}while(n--);语句,输出5个字符’a’。

3.     在C语言程序中,  (3)  语句一般用于跳过本次循环执行下一次循环。

4.     在C语言程序中,通常使用  (4)  函数分配内存。

5.     在C语言文件处理函数中,文件可分为文本文件和  (5)  文件。

6.     常用预编译处理命令有宏定义、文件包含、  (6)  。

7.     以下程序的运行结果是  (7)  。

#include

int main()

{

int a,b,t;

a=20;

b=10;

if(a>b)

{

t=a;a=b;b=t;

}

printf("%d,%d\n", a,b );

return 0;

}

8.     若有 int i=6, j=10;则执行完下面的语句后j的值为 (8) 。

#include

intmain( )

{

char ch1='c',ch2='b',ch3='a';

if(ch1>ch2)

{

if(ch2>ch3)

ch3++;

else

--ch3;

}

printf("ch3=%c\n",ch3);

return 0;

}

9.     以下程序的运行结果是 (8) 。

#include

intmain( )

{

int x=10,a=20,b=30;

switch(x%3)

{

case 1:

a--;

break;

case 2:

b++;

break;

case 3:

a++;

b++;

}

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

return 0;

}

10.  以下程序的运行结果是  (10)  。

#include

int main()

{

int i = 0;

while (i++ < 10);

printf("i=%d\n",i);

return 0;

}

11.  以下程序的运行结果是  (11)  。

#include

int main()

{

int  n ,d;

n = 12345;

while ( n != 0 )

{

d = n%10 ;

n = n / 10  ;

printf("%d" , n );

}

return 0;

}

12.  以下程序的运行结果是  (12)  。

#include

int main()

{

int a,b;

for(a=1,b=1;a<=10;a++)

{

if(b>20)

continue;

if(b%4==1)

{

b=b+4;

break;

}   b=b-5;

}

printf("a=%d\n",a);

return 0;

}

13.  以下程序的运行结果是  (13)  。

#include

int fun1(int x);

void fun2(int x);

int main()

{

int x=5;

x=fun1(x);

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

return 0;

}

int fun1(int x)

{

x--;

fun2(x);

return x;

}

void fun2(int x)

{

x--;

}

14.  以下程序的运行后输出第一行为  (14)  、输出第二行为  (15)  。

#include

void fun(int x);

int main()

{

fun(6);

return 0;

}

void fun(int x)

{

if(x/2>1)

fun(x/2);

printf("%5d\n",x);

}

参考答案:

1

a==b&&b==c

2

4

3

conti

4

malloc

5

二进制

6

条件编译

7

10,20

8

ch3=b

9

a=19,b=30

10

i=11

11

12341231210

12

a=1

13

4

14

3

15

6

三、编程题

(1)编写一个程序,从键盘输入长方体的长宽高,输出长方体的表面积。

测试数据:

输入:1 1 1

输出:6

(2)编写一个程序,从键盘输入二个整数M、N,判断M是否能被N整除。

测试数据:

输入:2,5

输出:2不能被5整除

(3)编写一个程序,从键盘输入一个大于0的整数N,输出1+1/2+1/3+...+1/N的和。

测试数据:

输入:2

输出:1.5

(4)编写一个程序,从键盘输入一个整数N,它的各位重新组合,求能得到的最大数。

测试数据:

输入:         2351

输出:         5321

(5)输入手机通话记录个数和手机通话记录,统计与每个人的通话次数。手机通话记录如下:

struct SRec

{

int  id;         /*序号*/

charname[20];     /*姓名*/

int time;       /*通话时间*/

};

测试数据:

输入:

5

1     张三       18913122055  45

2     李四       13913122055  5

3     张三       18913122055  56

4     王五       13913122055  78

5     李四       15913122055  200

输出:

张三       2次

李四       2次

王五       1次

参考答案:

(1)

#include

int main()

{

intx,y,z,s;

scanf("%d%d%d",&x,&y,&z);

s=(x*y+y*z+x*y)*2;

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

}

(2)

#include

int main()

{

intm,n;

scanf("%d%d",&m,&n);

if(m%n)

printf("%d被%d不能整除\n",m,n);

else

printf("%d被%d能整除\n",m,n);

}

(3)

#include

int main()

{

inti,n;

floats=0;

scanf("%d",&n);

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

s+=1.0/i;

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

}

(4)

#include

void sort(int a[],int n)

{

inti,j,t;

for(i=0;i

for(j=0;j

if(a[j]

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

int main()

{

inti,n;

inta[10],n2=0;

scanf("%d",&n);

while(n>0)

{

a[n2]=n%10;

n2++;

n=n/10;

}

sort(a,n2);

for(i=0;i

printf("%d",a[i]);

}

(5)

#include

#include

#include

struct SRec

{

int id;          /*序号*/

char name[20];       /*姓名*/

int time;         /*通话时间,秒*/

};

struct SRec2

{

charname[20];

intcount;

};

int AddRec2(struct SRec *r1,struct SRec2*r2,int n)

{

inti;

for(i=0;i

if(strcmp(r2[i].name,r1->name)==0)

{

r2[i].count++;

return n;

}

strcpy(r2[i].name,r1->name);

r2[i].count=1;

return++n;

}

int main()

{

inti,n,n2=0;

structSRec *a;

structSRec2 *b;

scanf("%d",&n);

a=malloc(n*sizeof(structSRec));

b=malloc(n*sizeof(structSRec2));

for(i=0;i

{

scanf("%d%s%d%d",&a[i].id,a[i].name,&a[i].num,&a[i].time);

n2=AddRec2(&a[i],b,n2);

}

for(i=0;i

printf("%s\t%d次\n",b[i].name, b[i].count);

free(a);

free(b);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值