—.易混点
-
%c在C语言中代表字符型格式符。
%s在C语言中代表字符串型格式符。
%c和%s一般用在printf、sprintf等字符串格式化函数中,用于决定格式化参数的数据类型。如printf("%s", a)会将变量a作为字符串类型进行格式化。
#include<stdio.h>
main()
{
char a[]="\0";
printf("%s\n",a);
printf("%c",a);
}
“\0” ,‘’,”\x43”,{‘\064’} 只有第一个赋值正确 -
sizeof的用法
#include<stdio.h>
main()
{
printf("%d\n",sizeof(“abc”));
printf("%d\n",sizeof(‘a’,‘b’,‘c’));
}
输出结果为4 1
其中第二题涉及到逗号运算符和char型的字节数
3.赋值语句
(1)可以为自增和自减
(2)int*q; intb;q=&b 因为q=&b这句只能用在声明指针p的时候,当不是声明的时候,就表示解引用,这时候他代表的是一个他指向的变量
- 空语句出现在任何位置都不会影响程序运行。
5.break 结束本层循坏
Continue 结束本次循环
- int*p int(*p) **p的区别
表示p是一个指针变量,指针的值保存的是另外一个指针变量的地址用法为
int a=10;
int b=&a;
int **p=&b;
intp[4]是指针的数组,bai也就du是说它是一个zhi数组,数组里存的是一个个的指针daozhuan
int(*p)[4]是数组的指针,也就是说它是一个指针,指向的是一个数组。
二.错题积累
-
假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是( A)。
A 7 B 8 C 9 D 2
, 只能为最后一个语句,其他的均不影响结果 -
#include<stdio.h>
int i;
void prt( )
{ for(i=5;i<8;i++) printf("%c",’’);
printf("\t");
}
main( )
{ for(i=5;i<=8;i++) prt( );
}
输出为**
此时证明了全局变量的用法,即不可重复赋值,而当去除第一次的自加语句后输出改变为*\t*\t*\t*\t -
以下函数调用语句中含有(2)个实参。
func((e1,e2),(e3,e4,e5));
可得出实参数为括号内的括号数 -
以下程序的输出结果为( )。
#define ADD(x) xx
main( )
{ int a=4,b=6,c=7,d=ADD(a+b)c;
printf(“d=%d”,d);
}
A d=70 B d=80 C d=140 D d=700
计算机运行为d=4+46+67=70 -
若有定义:char *p(char a[10]);则p是函数名。
6.用fopen(“file”,“r+”);打开的文件"file"可以进行修改。
- 通过return语句,函数可以带回一个返回值。
8.已知函数fread的调用形式为fread(buffer,size,count,fp),其中buffer代表的是(B )。
A 存放读入数据项的存储区 B 存放读入数据的地址或指向此地址的指针
C 一个指向所读文件的文件指针 D 一个整形变量,代表要读入的数据项总数
- 函数调用语句:fseek(fp,-10L,2);的含义是( A)。
A 将文件位置指针从文件末尾处向文件头的方向移动10个字节
B 将文件位置指针从当前位置向文件头的方向移动10个字节
C 将文件位置指针从当前位置向文件末尾方向移动10个字节
D 将文件位置指针移到距离文件头10个字节处
10.定义由n个指向整形数据的指针组成的数组p,其正确的方式为(D )。
A int p; B int (*p)[n]; C int *p[n]; D int (*p)( );
11.具有相同类型的指针类型变量p与数组a,不能进行的操作是( C)。
A p=a; B *p=a[0]; C p=&a[0]; D p=&a;
10和11题涉及到指针和数组的混合使用
12.若有定义:char s[ ]="china";则Turbo C系统为数组s开辟6个字节的内存单元。多一个‘\0’