scanf(“ %s ”,str); printf(“%s”,str);
当输入为:happy!
A 一个数组只允许存储同种类型的变量。
B 如果在对数组进行初始化时,给定的数据元素个数比数组元素个数少时,多 C 数组的名称其实是数组在内存中的首地址。 D 当数组名作参数被传递给某个函数时,函数运行过程中原数组中的元素的值可能被修改。
10下列说法中正确的有( )
A 4个scanf语句全部正确,但含义各不相同。 B 4个scanf语句全部正确,且(3)(4)两句含义相同。 C 4个scanf语句不都正确,其中正确的语句含义各不相同。 D 4个scanf语句不都正确,但(3)(4)两句正确且含义相同。 11以下关于数组的描述正确的是(C)
A 数组的大小是固定的,但可以有不同的类型的数组元素; B 数组的大小是可变的,但所有数组元素的类型必须相同; C 数组的大小是固定的,但所有数组元素的类型必须相同; D 数组的大小是可变的,但可以有不同的类型的数组元素; 12 在定义int a[10];之后,对a的引用正确的是A A a[9] B a[6.3] C a(6) D a[10]
13 以下是对一维数组进行不正确初始化:
int a[10]=(0,0,0,0); static char word[]='cool\\0';
14 以下对二维数组a进行正确初始化的是:int a[][3]={1,2,3,4,5,6};
15 在定义int a[5][4];之后,对数组元素的引用正确的是C A a[2][4] B a[5][0] C a[0][0] D a[0,0]
16 下面程序段的运行结果是(编译出错) char s[6]; s=”abcd”; printf(“\\”%s\\”\\n”,s);
17在执行int a[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是4 18 在执行char str[10]=”china\\0”;strlen(str)的结果是6 19 在定义int a[3][4][2];后,第10个元素是(a[1][0][1])
20 在C语言中,引用数组元素时,其数组下标的数据类型允许是整型表达式或整型常量 21下面程序的运行结果是3 char c[]=\printf(\
22判断字符串是否相等,应当使用 if(strcmp(a,b))式来进行。
23 以下程序的输出结果是__abc。
main()
{ char s[]=\ s[3]= ''\\0''; printf(\ }
24 若有定义语句: char s[100],d[100]; int j=0, i=0;,且s中已赋字符串,下面的语句可以实现字符串拷贝。(注:不得使用逗号表达式) while(s[i]){ d[j]= __ s[i++]__;j++;} d[j]=0;
25 下列程序段的输出结果是 __Hello。 main()
{ char b[]=”Hello,you”; b[5]=0;
printf(“%s \\n”, b ); }
26 若想通过以下输入语句a使中存放字符串1234,b中存放字符5,则输入数据的形式应该是__ a=1234 b=5 或 a=1234b=5__ char a [10],b;
scanf(\
27 输入5*5的数组,编写程序实现: (1)求出对角线上各元素的和;
(2)求出对角线上行、列下标均为偶数的各元素的积; (3)找出对角线上其值最大的元素和它在数组中的位置。
28从键盘输入5学生的成绩至数组中,将最低分的成绩输出。
第八章知识点
1 若有语句int *point a=4;和point &a;下面均代表地址的一组选项是
A a,point,*&a B &*a,&a,*point C *&point,*point,&a D &a,&*point,point
2 若有定义:int x,*pb; 则以下哪个是正确的赋值表达式?
A *pb=&x; B pb=x; C pb=&x; D *pb=*x;
3执行以下程序后,a的值为
main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;
b=(-*p1)/(*p2)+7; printf(“a=%d\\n”,a); printf(“b=%d”,b);
} 【0】
4 下面程序中调用scanf 函数给变量a输入数值的方法是错误的,其错误原因是
main()
{ int *p,q,a,b; p=&a;
scanf(“%d”,*p); ……
} 【*p表示的是变量a的值,而不是变量a的地址】
5 变量的指针,其含义是指该变量的【地址】 6执行以下程序后,b的值为7 main()
{ int a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m;
b=(-*p1)/(*p2)+7; printf(“a=%d\\n”,a); printf(“b=%d”,b); }
7若有int k=2,*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的语句 是 ptr2=k;
8设char *s=”\\ta\\017bc”;则指针变量s指向字符串所占的字节数是6
9能正确进行字符串赋值操作的语句是char *s s=\10设有下面的程序段:C
char s[]=”china”; char *p; p=s; 则表示 *P与s[0]相等。
11若有语句:char s1[]=”string”,s2[8],*s3,*s4=”string2”;则对库函数strcpy()的正确调用是: strcpy(s2,s4);
12以下程序的输出结果是_10_。
main()
{ int arr[ ]={30,25,20,15,10,5}, *p=arr; p++;
printf(“%d\\n”,*(p+3)); }
13若有以下定义,
int w[10]={23,54,10,33,47,98,72,80,61}, *p=w;
则不移动指针p,且通过指针p引用值为98的数组元素的表达式是 __ P[5] 或 *(p+5)__ 。 14设有以下定义的语句:
int a[3][2]={10,20,30,40,50,60}, (*p)[2]; p=a;
则 *(*(p+2)+1)值为__60__. 15下面程序的输出是__ AB __。 main( )
{int i=3,j=2 char *a=\
printf(\,a[i],a[j]);
}
16指针变量定义后,指针变量值不确定,应用前必须先赋值。
17 编写函数,通过指针将一个字符串反向。 18 编写函数,通过指针将一个字符串反向。
第九章知识点
1 以下程序的输出结果是_21_。 struct st { int x,*y; }*p;
int s[]={10,20,30,40};
struct st a[]={1,&s[0],2,&s[1],3,&s[2],4,&s[3]}; main() { p=a;
printf(\; }
2 结构体类型的成员名可与结构体以外的变量名相同。
3下面程序的运行结果是:__80__。
typedef union student { char name[10]; long sno; char sex;
float score[4]; }STU; main()
{ STU a[5];
printf(“%d\\n”,sizeof(a)); }
4如下正确的结构体说明是: struct STRU
{ int a, b ; char c; double d: struct STRU p1,p2; }; struct STRU t[20];
5设有以下结构类型说明和变量定义,则变量a在内存所占字节数是 __22__。 struct stud { char num[6]; int s[4]; double ave; } a,*p;
6结构体成员名与程序中变量名可以相同。
7使用两个结构体变量,分别存放用户输入的两个日期(包括年、月、日),然后计算两日期之间相隔多少天。
第十章知识点
1 以下程序用来统计文件中字符个数。请填空。 #include \ main()
{ FILE *fp; long num=0L;
if((fp=fopen(\ { pirntf(\ while( __1__)
{ fgetc(fp); num++;}
printf(\ fclose(fp); } 【!feof(fp)】
2以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,
然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; ling f1;
myf=__ fopen __(“test.t”,“rb”); fseek(myf,0,SEEK_END); f1=ftel(myf); fclose(myf);
printf(“%d\\n”,f1);
3在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是__ fseek 或 rewind __.