单项选择题

有以下程序

#include
typedef struct {int b, p;} A;
void f(A c)
{
   int j;
   c.b+=1;
   c.p+=2;
}
void main()
{
   int i;
   A a={1,2};
   f(a);
   printf("%d,%d\n", a.b, a.p);
}

程序运行后的输出结果是(     )。

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


延伸阅读

你可能感兴趣的试题

1.单项选择题

下面结构体的定义语句中, 错误的是(     )。

A.struct ord {int x;int y;int z;} struct ord a;
B.struct ord {int x;int y;int z;}; struct ord a;
C.struct ord {int x;int y;int z;} a;
D.struct {int x; int y;int z;} a;

2.单项选择题

以下叙述中正确的是(     )。

A.在 C 语言中, 预处理命令行都以“#” 开头
B.预处理命令行必须位于 C 源程序的起始位置
C.#include 必须放在 C 程序的开头
D.C 语言的预处理不能实现宏定义和条件编译的功能

3.单项选择题

若要使用 C 数学库中的 sin 函数, 需要在源程序的头部加上
#include
关于引用数学库, 以下叙述正确的是(     )。

A.将数学库中 sin 函数的源程序插入到引用处, 以便进行编译链接
B.将数学库中 sin 函数链接到编译生成的可执行文件中, 以便能正确运行
C.通过引用 math.h 文件, 说明 sin 函数的参数个数和类型, 以及函数返回值类型
D.实际上, 不引用 math.h 文件也能正确调用 sin 函数

5.单项选择题

以下叙述中正确的是(     )。

A.如果 p 是指针变量, 则&p 是不合法的表达式
B.如果 p 是指针变量, 则*p 表示变量 p 的地址值
C.在对指针进行加、 减算术运算时, 数字 1 表示 1 个存储单元的长度
D.如果 p 是指针变量, 则*p+1 和*(p+1)的效果是一样的

6.单项选择题

以下叙述中正确的是(     )。

A.如果企图通过一个空指针来访问一个存储单元, 将会得到一个出错信息
B.即使不进行强制类型转换, 在进行指针赋值运算时, 指针变量的基类型也可以不同
C.设变量 p 是一个指针变量, 则语句 p=0;是非法的, 应该使用 p=NULL;
D.指针变量之间不能用关系运算符进行比较

7.单项选择题

以下叙述中正确的是(     )。

A.语句 p=NULL;执行后, 指针 p 指向地址为 0 的存储单元
B.指针变量只能通过求地址运算符(&) 来获得地址值
C.语句 p=NULL;与 p=\0;是等价的语句
D.int* p1; int ** p2; int *p3;都是合法的定义指针变量的语句

9.单项选择题

以下叙述中正确的是(     )。

A.当对文件的读(写) 操作完成之后, 必须将它关闭, 否则可能导致数据丢失
B.打开一个已存在的文件并进行了写操作后, 原有文件中的全部数据必定被覆盖
C.在一个程序中当对文件进行了写操作后, 必须先关闭该文件然后再打开, 才能读到第 1 个数据
D.C 语言中的文件是流式文件, 因此只能顺序存取数据

10.单项选择题

以下叙述中正确的是(     )。

A.函数调用时, 不必区分函数名称的大小写
B.调用函数时, 函数名必须与被调用的函数名完全一致
C.函数名允许用数字开头
D.在函数体中只能出现一次 return 语句