(C)一些题10

1.有函数

void fun(double a[],int  *n)

{............},,,对的是

A.用fun函数时只有数组执行按值传送,其他实参和形参之间执行按地址传
B、形参a和n都是指针变量
C、形参a是一个数组名 n是指针变量
D、调用fun函数时将把double型实参数组元素一一对应地传送给形参a数组

2.设有定义语句int (*f)(int);,则以下叙述正确的是()。
A.f是基类型为int的指针变量
B. f是指向函数的指针变量,该函数具有一个int 类型的形参
C. f是指向int类型一维数组的指针变量
D. f是函数名,该函数的返回值是基类型为int类型的地址


3.int a=0.b=0,c=0,d=0;
if(a=1) b=1;
c=2;
else     // error C2181:illegal else without matching if
d=3;
printf(“%d,%d,%d,%d\n",a,b,c,d);
程序输出( )。
A. 0,1,2,0 B. 0,0,0,3 C. 1,1,2,0 D.编译有错

 

4.有以下程序
void main()

{

union{
char ch[2]; 
int d;
}s;
s.d=0x4321;
printf(“%x,%xn”,s.ch[0],s.ch[1]);
在16位编译系统上,程序执行后的输出结果是()。
A. 21,43 B. 43,21 C. 43,00 D. 21,00

解析:

4321
内存中一个字节为8位,4321 共占两个字节:0100 0011 ,0010 0001即为:ch[01=0010 0001,ch[1]=0100 0011;
将其转化为16进制为:ch[0]=00100001,ch[1]=1000011;
即为:ch[0]=21,ch[1]=43;  输出:2143

5.错的是()

A. 可以通过typedef增加新的类型
B. 可以用typedef将已存在的类型用一个新的名字来代表
C. 用typedef定义新的类型名后,原有类型名仍有效
D.用typedef可以为各种类型起别名,但不能为变量起别名


6.在C语言中,只有在使用时才占用内存单元的变量,其存储类型是()。

A. auto 和register B. extern 和register
C. auto 和static D. static和register
 

7.有以下函数

#include <stdio.h> 

void main()

{char a[20],b[20],c[20]; 
scanf("%s%s”,a,b);
gets(c);
printf(%s%s%s、n”,a,b,c);

}
程序运行时从第一行开始输入this is a cat!<回车>,则输出结果是()
A. thisisacat!    B. this is a    C. thisis a cat!    D. thisisa cat!

解析:考察scanf和gets输入字符串的区别,scanf语句接收字符时, 遇到空格就作为一个字符串的结束,所以a数组中为this,b 数组中为is,但是gets函数见到回车才认为结束所以c数组为 a cat!。所以打印结果如选项 C

8.

下列程序运行后的输出结果是 5 3 5 3
void swapl(int c0[], intcl[])
{
int t;
t=c0[0]; c0[0]=c1[0]; c1[0]=t;
}
void swap2(int *c0,int *cl)
{int t;
t=*c0; *c0=*cl; *cl=t;
}
main()
{
int a[2]={3,5}, b[2]={3,5};
swapl(a,a+1);
swap2(&b[0],&b[1]);
printf("%d %d %d %d\n",a[0],a[1],b[0],b[ 1]);

9

下列程序运行后的输出结果是 29
int a=2;
int f(int n)
{
static int a=3;
int t=0;
if(n%2){ static int a=4; t +=a++;}
else  {static int a=5; t += a++;}
return t+a++;
}
main()
{
int s=a, i;
for( i=0;i<3;i++) s+=f(i):
printf("%d\n”,s);
}

10.


下列程序运行后的输出结果是 SunDan 20042
# include <string.h>
struct STU
{
char name[10];
int num;};
void f(char *name, int num)
{
struct STU s[2]={
  {"SunDan",200441},{"Penghua",20045}};
num=s[0].num;
strepy(name, s[0].name);
}
main()
{
 struct STU s[2]={
  {"YangSan",20041},{"LiSiGuo",2004211}},*p;
p=&s[1]; f(p->name,p->num);
printf("%s od\n", p->name,p->num);
}

答案:BBDAA   AC

1.形参a【】已经退化为一个指针,所以AC错。D,只是传入了一个指针,没有把数组的元素挨个赋值

2.A  int*p    C int (*p)[]    

3.if else 不匹配

4.高高低低原则

相关推荐

  1. C一些10

    2023-12-12 07:42:05       30 阅读
  2. C一些11

    2023-12-12 07:42:05       37 阅读
  3. C一些15

    2023-12-12 07:42:05       30 阅读
  4. C一些19

    2023-12-12 07:42:05       29 阅读
  5. C一些19

    2023-12-12 07:42:05       32 阅读
  6. C一些15

    2023-12-12 07:42:05       29 阅读
  7. C一些9

    2023-12-12 07:42:05       31 阅读
  8. C一些21

    2023-12-12 07:42:05       33 阅读
  9. C语言程序10

    2023-12-12 07:42:05       11 阅读
  10. C语言程序10

    2023-12-12 07:42:05       13 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 07:42:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 07:42:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 07:42:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 07:42:05       20 阅读

热门阅读

  1. uniapp flex:1不生效

    2023-12-12 07:42:05       35 阅读
  2. 什么是rocketmq❓

    2023-12-12 07:42:05       34 阅读
  3. Python从门到精通(九):numpy科学计算库

    2023-12-12 07:42:05       42 阅读
  4. Python中求取数字位数的方法

    2023-12-12 07:42:05       33 阅读
  5. 线上问题得解决

    2023-12-12 07:42:05       39 阅读
  6. Spring-xml版本

    2023-12-12 07:42:05       44 阅读