Summer 14

1.如果二进制文件a.dat 已经存在,现在要求写人全新数据,应以  B 方式打开。

A.  "w"

B.  "wb "

C.  "w+"

D.  "wb+"

首先是dat(二进制)文件,必须带b。全新文件,不能有+号,故选B.

2.直接使文件指针重新定位到文件读写的首地址的函数是  rewind ()

ftell() 函数用于得到文件指针当前位置相对于文件首地址的偏移字节数;

fseek()函数用于设置文件指针的位置;

rewind()函数用于将文件内部的位置指针重新指向一个流(数据流/文件)的开头;

ferror()函数可以用于检查调用输入输出函数时出现的错误。

3. 有如下代码,则以下各输入语句中错误的是  scanf("%s", &std.name); 

int main()
{
	struct student
	{
		char name[10];
		int age;
		char gender;
	}std[3],*p=std;
	scanf("%d", &(*p).age);
	scanf("%c", &std[0].gender);
	scanf("%c", &(p->gender));
	//scanf("%s", &std.name);  错误
	system("pause");
	return 0;
}

4.以下代码将打印出 3,3,3

int main(void)
{
	int a = 2, *p1, **p2;
	p2 = &p1;
	p1 = &a;
	a++;
	printf("%d,%d,%d\n", a, *p1, **p2); // 3,3,3
	system("pause");
	return 0;
}

5.下列代码的输出结果是 8,8

int main()
{
	int arr[] = { 6, 7, 8, 9, 10 };
	int *ptr = arr;
	*(ptr++) += 123;
	printf("%d,%d\n", *ptr,*(++ptr));//8,8
	system("pause");
	return 0;
}

*(ptr++)+=123; //这里运行后,ptr = &arr[1], arr[0] = 129
printf("%d,%d",*ptr,*(++ptr)); //这里先计算++ptr,ptr =&arr[2], 所以相当于printf("%d,%d",arr[2],arr[2]);

执行printf:在VC中,printf执行的顺序是自右向左,所以先执行*(++ptr)
外加一条:printf在不同的编译环境下运算的顺序是不同的。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值