1. C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。
A 必须为字母 B 必须为下划线
C 必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符
2.下面4个选项中,均是C语言关键字的选项是——。
A auto enum include B switch typedef continue C signed union scanf D if struct type
3.下面4个选项中,均是不合法的用户标识符的选项是——。 A A P_0 do B float la0 _A
C b-a goto int D _123 temp INT 4.在C语言中,int、char和short三种类型的数据在内存中所占用的字节数——。 A 由用户自己定义 B 均为2个字节 C 是任意的 D 由所用机器的机器字长决定
5.下面4个选项中,均是合法浮点数的选项是——。
A +1e+1 5e-9.4 03e2 B -.60 12e-4 -8e5 -.4 +2e-1 D -e3 .8e-4 -0
6.下面不正确的字符串常量是——。 A ˊabcˊ B 〞12ˊ12〞 C 〞0 〞 D 〞〞
7.假设所有的变量均为整型,那么表达式〔a=2,b=5,b++,a+b〕的值是——。 A 7 B 8 C 6 D 2
8.以下正确的表达是——。
A 在C语言中,每行只能写一条语句
B 假设a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C 在C程序中,无论整数还是实数,都能被准确无误的表示 D 在C程序中,%是只能用于整数运算的运算符
9.以下表达式值为3的是——。 A 16-13%10 B 2+3/2
C 14/3-2 D 〔2+6〕/〔12-9〕
10. 设变量a是整型,f是实型,i是双精度型,那么表达式10+ˊaˊ+i*f值的数据类型为——。 A int B float
页脚下载后可删除,如有侵权请告知删除!
C double D 不确定
11.在C语言中,char型数据在内存中的存储形式是——。 A 补码 B 反码
C 原码 D ASCⅡ码
12.设有说明语句:char w;int x;float y;double z;wxzy值的数据类型为——。
A float B char C int D double
13.在C语言中,要求运算数必须是整型的运算符是——。 A / B ++ C != D %
14.在C语言中一个int型数据在内存中占2个字节,那么unsigned int型数据的取值范围为——。
A 0~255 B 0~32 767
C 0~65 535 D 0~2 147 483 647
15下面正确的字符常量是——。 A 〞c 〞 B 〞\\\\〞 C ˊWˊ D ˊˊ
16.各变量的类型说明如下: int k , a , b;
unsigned long w=5; double x=1.42;
那么以下不正确的表达式是——。 A x%(-3) B w+= -2
C k=(a=2,b=3,a+b) D a+=a-=(b=4)*(a=3)
17.假设定义语句:int a=7;float x=2.5;y=4. 7; 那么表达式x+a%3*(int)(x+y)%2/4的值是——。 A 2.500000
CⅡ码为十进制数65,且定义c2为字符型变量,那么执行语句 c2=ˊAˊ+ˊ6ˊ-ˊ3ˊ;后,c2中的值为: A D B 68
C 不确定的值 D C
19.以下程序的运行结果是——。
页脚下载后可删除,如有侵权请告知删除!
# include int m=5,n=10; printf(“%d,%d\\n〞,m++,--n); } A 5, 9 B 6,9 C 5,10 D 6,10 20. 以下程序的运行结果是——。 # include int a=201,b=012; printf(“%2d,%2d\\n〞,a,b); } A 01,12 B 201,10 C 01,10 D 20,01 21.设有如下程序 # include char ch1=’A’,ch2=’a’; printf(“%c\\n〞,(ch1,ch2)); } 那么以下表达正确的为—— A 程序的输出结果为大写字母A B 程序的输出结果为小写字母a C 运行时产生错误信息 D 格式说明符的个数少于输出项的个数,编译出错 22.以下正确定义整型变量a,b和c并为其赋初值5的语句是——。 A int a=b=c=5; B int a,b,c=5; C int a=5,b=5,c=5; D a=b=c=5; 23.设x,y均为float型变量,那么不合法的赋值语句是——。 A ++x ; B y=(x%2)/10 ; C xy8 ; D x=y=0; 24.输入数据的形式是25,13,10<回车>,那么程序的输出结果是——。 main() { int x,y,z; 页脚下载后可删除,如有侵权请告知删除! scanf (“%d%d%d〞,&x,&y,&z); printf(“x+y+z=%d\\n〞,x+y+z); } A x+y+z=48 B x+y+z=35 C x+z=35 D 不确定值 25.假设有如下定义,那么正确的赋值语句是——。 int a,b; float x; A a=1,b=2, B b++; C a=b=5 D b=int(x); 1.学生记录描述为 struct student {int no; char name[20]; char sex; struct {int year; int month; int day;}birth;}; struct student s; 设变量s中的“生日〞应该是“1984年11月11日〞,以下对“生日〞的正确赋值方式是( ) A. year=1984; B.birth.year=1984; month=11; birth.month=11;day=11; birth.day=11; C.s.year=1984; D.s.birth.year=1984;s.month=11; s.birth.month=11;s.day=11; s.birth.day=11; 2.当说明一个构造体变量时系统分配给它的内存是( ) B.构造中第一个成员所需内存量 C.成员中占内存量最大者所需的容量 D.构造中最后一个成员所需内存量 3.设有以下说明语句 struct stu {int a;float b;}stutype;那么以下表达不正确的选项是( ) A. struct 是构造体类型的关键字 B. struct stu 是用户定义的构造体类型 C. stutype 是用户定义的构造体类型名 D. a 和 b 都是构造体成员名 语言构造体类型变量在程序执行期间( ) A. 所有成员一直驻留在内存中 页脚下载后可删除,如有侵权请告知删除! B. 只有一个成员驻留在内存中 C. 局部成员驻留在内存中 D. 没有成员驻留在内存中 5.在16位机动IBM-PC机上使用C语言,假设有如下定义: struct data {int I; char ch; double f;}b; 那么构造体变量b占用内存的字节数是( ) B.7 C.8 6.以下程序的运行结果是( ) main() {struct date {int year,month,day;}today; printf(\"%d\\n\A.6 B.8 C.10 7.根据下面的定义,能打印出字母M的语句是( ) struct person {char name[9]; int age;}; struct person class[10]={\"John\A.printf(\"%c\\n\B.printf(\"%c\\n\C.printf(\"%c\\n\D.printf(\"%c\\n\ 8.下面程序的运行结果是( ) main() {struct cmplx{int x;int y;}cnumn[2]={1,3,2,7}; printf(\"%d\\n\"),cnum[0].y/cnum[0].x*cnum[1].x;} B.1 C.3 9.假设有以下定义和语句 struct student {int age; int num;}; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; main() {struct student *p;p=stu;……}那么以下不正确的引用是( ) A.(p++)->num B.p++ C.(*p).num 10.以下 scanf 函数调用语句中对构造体变量成员的不正确引用是( ) struct pupil 页脚下载后可删除,如有侵权请告知删除! {char name[20]; int age; int sex;}pup[5],*p; p=pup; A.scanf(\"%s\ B.scanf(\"%d\C..scanf(\"%d\ D.scanf(\"%d\ 11.假设有以下说明和语句: struct student {int age; int num;}std.*p; p=&std;那么以下对构造体变量std中成员age的引用方式不正确的选项是( ) A. std.age B.P->age C.(*p).age 12.假设有以下程序段: struct dent {int n; int *m;}; int a=1,b=2,c=3; struct dent s[3]={{101,&a},{102,&b},{103,&c}}; main() {struct dent *p;p=s; ……}那么以下表达式值为2是( ) A.(P++)->m B.*(P++)->m C.(*P).m D.*(++p)->m 13.设有以下语句: struct st {int n; struct st *next;}; struct st a[3]={5.&a[1],7,&a[2],9,'\\0'};*p; p=&a[0];那么以下表达式的值为6的是( ) A.p++->n B.p->n++ C.(*p).n++ D.++p->n 15.假设有以下说明和语句,那么下面表达式中的值为1002的是( ) struct student { int num;int age; }; struct student stu[3]={{1001,20},{1002,19},{1003,21}}; struct student *p; p=stu; A.(p++)->num B.(++p)-> num C.(*p).num D.(*++p).age 16.以下对构造体变量stul中成员age的非法引用的是( ) struct strudent {int age; int num;}stul,*p; p=&stul; C.p->age D.(*p).age 17.设有以下说明和定义语句,那么下面表达式中值为3的是( ) struct s 页脚下载后可删除,如有侵权请告知删除! {int il; struct s *12;}; struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptr ptr=&a[1]; A.ptr->il++ B.ptr++->il C.*ptr->il D.++ptr->il 18.当说明一个共用体变量时系统分配给它的内存是( ) A.各成员所需内存量的总和 B.构造中第一个成员所需内存量 D.构造中最后一个成员所需内存量 19.以下对C语言中共用体类型数据的表达正确的选项是( ) A.可以对共用体变量名直接赋值 B.一个共用体变量中可以同时存放其所有成员 D.共用体类型定义中不能出现构造体类型的成员 20.假设有以下定义语句 union data {int l; char c; float f;}a; int n;那么以下语句正确的选项是( ) A.a=5; B.a={2,'a',1.2}; C.printf(\"%d\\n\ D.n=a; 21.设有以下语句,那么下面不正确的表达是( ) union data {int I; char c; float f;}UN; 所占的内存长度等于成员f的长度 的地址和它的各成员地址都是同一地址 不可以作为函数参数 D.不能对UN赋值,但可以在定义un时对它初始化 语言共用体类型变量在程序运行期间( ) A.所有成员一直驻留在内存中 C.局部成员驻留在内存中 D.没有成员驻留在内存中 23.以下程序的运行结果是( ) #include char c;}m; 页脚下载后可删除,如有侵权请告知删除! printf(\"%d\\n\A.2 B.4 C.6 25.以下程序的运行结果是:( ) #include char ch[2]; }a; main() { a.ch[0]=13; a.ch[1]=0; printf(\"%d\\n\ A.13 B.14 C.208 文件选择题: 1.以下哪个是字符写函数〔 〕。 A.fgetc B.fputc C.fgets D fwrite 2.以下哪个是字符串读函数〔 〕。 A.fgetc B.fputc C.fgets D fwrite 3.假设要翻开D盘上user文件夹下名为abc.txt的文本文件进展读、写操作,符合此要求的函数调用是〔 〕。 A.fopen(\"D:\\\\\\abc.txt\ B.fopen(\"D:\\abc.txt\ D.fopen(\"D:\\abc.txt\ C.fopen(\"D:\\\\\\abc.txt\ 4.以下哪个是读写文件出错检测函数〔 〕。 A.ferror B.clearerr C.feof D fwrite 5.当顺利执行了文件关闭操作时,fclose函数的返回值是〔 〕。 A. -1 B.TRUE C. 0 D. 1 6.当不能正确执行文件关闭操作时,fclose函数的返回值是〔 〕。 A. -1 B.EOF C. TRUE D. 1 7.以下要作为函数fopen中第一个参数的正确格式是:〔 〕 A.c:user\ext.txt B.c:\\rser\ext.txt C.\ext.txt 8.假设执行fopen函数时发生错误,那么函数的返回值是:〔 〕 A.地址值 页脚下载后可删除,如有侵权请告知删除! 9.假设以〞a+〞方式翻开一个已存在的文件,那么以下表达正确的选项是:〔 〕 A.文件翻开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作。 B.文件翻开时,原有文件内容被删除,位置指针移到文件开头,可作重新写和读操作。 C.文件翻开时,原有文件内容被删除,只可作写操作。 D.以上各种说法皆不下确。 10.当顺利执行了文件关闭操作时,fclose函数的返回值是:〔 〕 A.-1 11.函数的高速用形式:fread(buffer,size,count,fp);其中buffer代表的是〔 〕 A.一个整型变量,代表要读入的数据项总数 B.一个文件指针,指向要读的文件 C.一个指针,指向要读入数据的存放地址 D.一个存储区,存放要读的数据项 12.fscanf函数的正确调用形式是:〔 〕 A.fscanf(fp,格式字符串,输也表列) B.fscanf(格式字符串,输出表列, fp) C.fscanf(格式字符串,文件指针,输出表列) D.fscanf(文件指针,格式字符串,输入表列) 13.fwrite函数的一般调用形式是:〔 〕 A.fwrite(buffer,count,size,fp) B.fwrite(fp,size,count,buffer) C.fwrite(fp,count,size,buffer) D.fwirte(buffer,size,count,fp) 14.fgetc函数的作用是从指定文件读入一个字符,该文件的翻开方式必须是〔 〕 A.只写 B.追加 10.假设调用fputc函数输出字符成功,那么其返回值是:〔 〕 A.EOF B.1 C.0 15.函数调用语句:fseek(fp,-20L,2);的含义是〔 〕 A.将文件位置指针移到了距离文件头20个字节处 B.将文件位置指针从当前位置向后移动20个字节 C.将文件 位置指针从文件末尾处向后退20个字节 16.利用fseek函数可以实现的操作是:〔 〕 A.改变文件的位置指针 页脚下载后可删除,如有侵权请告知删除! 17.Rewind,函数的作用是:〔 〕 18.函数ftell(fp)作用是:〔 〕 A.得到流式文件 中的当前位置 B.移动流式文件 的位置指针 C.初始化流式文件 的位置指针 D.以上答案均正确 19、以下程序的输出结果是( ) struct abc { int a, b, c; }; main() { struct abc s[2]={{1,2,3},{4,5,6}}; int t; t=s[0].a+s[1].b%s[0].c; printf(\"%d \\n\",t); } A 2 B 3 C 4 D 7 20.以下程序的输出结果是( ) struct student { int a, b, c; }; main() { struct student stu[2]={{1,2,3},{4,5,6}}; int t; t=stu[0].a+stu[1].b%stu[0].c; printf(\"%d \\n\ (A) 0 (B) 1 (C) 3 (D) 5 二.填空题 1.C语言中的标识符可分为关键字、【用户标识符】和【预定义标识符】3类。 2.在C语言中,用“\\〞开头的字符序列称为转义字符,转义字符“\\n〞的功能是【换行】;转义字符“\\r〞 的功能是【回车】。 3.在C语言中,用关键字【float】定义单精度实型变量,用关键字【double】定义双精度实型变量,用关键字【char】定义字符型变量。 页脚下载后可删除,如有侵权请告知删除! 4.在C语言中,&作为双目运算符时表示的是【按位与运算】,而作为单目运算符时表示的是【取地址】。 5.C语言所提供的根本数据类型包括:单精度型、双精度型、【整型】、【字符型】和【枚举类型】。 6运算符%两侧运算量的数据类型必须都是【整型】;运算符++和--的运算量必须是【变量】。 7.假设a是int型变量,且a的初值是6,那么执行表达式a+=a-=a*a后a的值为【-60】。 8.假设有定义语句:int x=3,y=2;float a=2.5,b=3.5;那么表达式〔x+y〕%2+〔int〕a/〔int〕b的值为【1】。 9.假设m是一个3位数,从左到右依次用a、b、c表示各位数字,那么从左到右各位数字是b、a、c的3位数的表达式是【(m/10%10)*100+m/100*10+m%10】。 10.在C语言中的赋值表达式中,赋值号左边须是【变量】。 11. C语言中的标识符只能由3种字符组成,它们是【关键字】、【用户标识符】和【预定义标识符】。 12.表达式x=6应当读做【将6赋给变量x】。 13.设在C语言中一个int型数据在内存中占2个字节,那么int型数据的取值范围为【-32768~32767】〔用十进制表示〕。 14.假设有定义语句:int s=6;那么表达式s%2+〔s+1〕%2的值为【1】。 15.把以下多项式写成只含3次乘法运算,其余皆为加、减运算的C语言表达式为【】。 16.以下程序的输出结果为【*3.140000, 3.142*】。 main〔〕 { printf〔“*%f,%*\\n〞,3.14,3.1415〕; } 17. 以下程序的输出结果为【】。 main〔〕 { 页脚下载后可删除,如有侵权请告知删除! int x=1,y=2; printf〔“x=%d y=%d*sum*=%d\\n〞,x,y,x+y〕; printf〔“10 Squared is :%d\\n〞,10*10〕; } x=1 y=2*sum*=3 10 Squared is :100 18. 以下程序的输出结果为【】。 include<stdio.h> main〔〕 { int x=10; float pi=3.1416; printf〔“(1) %d\\n〞,x〕; printf〔“(2) %6d\\n〞,x〕; printf〔“(3) %f\\n〞,56.1〕; printf〔“(4) %14f\\n〞,pi〕; } (1)10 (2) 10 (4) 3,141600 19. 以下程序的输出结果为【20】。 #include<stdio.h> main〔〕 { int n=0; n+=(n=10); printf〔“%d\\n〞,n〕; } Ⅱ的值为65。以下程序的输出结果为【a=66, b=E】。 #include<stdio.h> main〔〕 { char a,b; a=ˊAˊ+ˊ4ˊ-ˊ3ˊ; b=ˊAˊ+ˊ6ˊ-ˊ2ˊ; printf〔“a=%d,b=%c\\n〞,a,b〕; } 编程题 1. 输入三角形的三边长,求三角形的面积。可设三边长分别为a,b,c能构成三 页脚下载后可删除,如有侵权请告知删除! 角形,那么三角形的公式为: 其中: 2. 从键盘输入一个大写字母,要求改用小写字母输出。 3. 输入一个华氏温度,要求输出摄氏温度。公式为 输出要有文字说明,取2位小数。 4. 设圆半径 ,求圆周长,圆面积。用scanf输入数据,输出结果时要求有文字说明,取小数点后2位数字。 5. 设圆半径 ,求圆球外表积,圆球体积。用scanf输入数据,输出结果时要求有文字说明,取小数点后2位数字。 6.设圆半径 ,圆柱高h=3,求圆柱体积。用scanf输入数据,输出结果时要求有文字说明,取小数点后2位数字。 构造体编程: 1.利用以下构造和初始化条件,计算并输出学生的平均成绩和不及格的人数。 struct student {int num; char *name; char sex; float score; }boy[5]={ {101,\"Li ping\ {102,\"Zhang ping\ {103,\"He fang\ {104,\"Cheng ling\ {105,\"Wang ming\ }; 答案: main() { int i,c=0; float ave,s=0; for(i=0;i<5;i++) { s+=boy[i].score; 页脚下载后可删除,如有侵权请告知删除! if(boy[i].score<60) c+=1; } printf(\"s=%f\\n\ ave=s/5; printf(\"average=%f\\ncount=%d\\n\} 2.根据如下构造,建立同学通讯录收入三个同学信息并输出 struct mem { char name[20]; char phone[10]; }; 答案: main() { struct mem man[NUM]; int i; for(i=0;i gets(man[i].name); printf(\"input phone:\\n\"); gets(man[i].phone); } printf(\"name\\\phone\\n\\n\"); for(i=0;i int num; char *name; char sex; float score; }boy[5]={ {101,\"Zhou ping\ {102,\"Zhang ping\ {103,\"Liou fang\ {104,\"Cheng ling\ {105,\"Wang ming\ }; 答案: #include \"stdio.h\" main() 页脚下载后可删除,如有侵权请告知删除! { struct stu *ps; printf(\"No\Name\\\Sex\Score\\\n\"); for(ps=boy;ps void print( struct student *head) { struct student *p; printf(\"\\nNow,These %d records are:\\n\p=head; if (head!=NULL) do { printf(\"%ld %\\n\p=p->next; }while (p!=NULL); } 5.写一函数从链表中删除学号为指定值num的结点 答案: struct student *del(struct student *head;long num) {struct student *p1,*p2; if (head==NULL) {printf(\"\\nlist null!\\n\");goto end;} p1=head; while (num!=p1->num&&p1->next!=NULL) {p2=p1;p1=p1->next;} if (num==p1->num) {if (p1==head) head=p1->next; else p2->next=p1->next; printf(\"delete:%ld\\n\n=n-1; } else printf(\"%ld not been found!\\n\end: return(head); } 文件编程: 1.读入文件e盘上的文件c1.doc,在屏幕上输出。 答案: #include 页脚下载后可删除,如有侵权请告知删除! main() { FILE *fp; char ch; if((fp=fopen(\"e:\\\\c1.c\ { printf(\"\\nCannot open file strike any key exit!\"); getch(); exit(1); } ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp);} fclose(fp);} 2.从键盘输入一行字符,写入一个文件,再把该文件内容读出显示在屏幕上。 答案: #include FILE *fp; char ch; if((fp=fopen(\"e:\\\t.c\ { printf(\"Cannot open file strike any key exit!\"); getch(); exit(1); } printf(\"input a string:\\n\"); ch=getchar(); while (ch!='\\n') { fputc(ch,fp); ch=getchar(); } rewind(fp); ch=fgetc(fp); while(ch!=EOF) { putchar(ch); ch=fgetc(fp); } printf(\"\\n\"); fclose(fp); } 3.从string文件中读入一个含10个字符的字符串放入e盘文件中。 答案: #include { FILE *fp; char str[11]; if((fp=fopen(“e:\\\t.c\ { printf(\"\\nCannot open file any key exit!\"); getch(); 页脚下载后可删除,如有侵权请告知删除! exit(1); } fgets(str,11,fp); printf(\"\\n%s\\n\ fclose(fp);} 4.利用构造体,从键盘输入两个学生根本信息数据,写入e盘tt.c文件中,再读出这两个学生的数据显示在屏幕上。 struct stu { char name[10]; int num; int age; char addr[15]; } boya[2],*pp; 答案: #include char name[10]; int num; int age; char addr[15]; } boya[2],*pp; main() { FILE *fp; char ch; int i; pp=boya; if((fp=fopen(\"e:\\\t3.c\ { printf(\"Cannot open file strike any key exit!\"); getch(); exit(1); } printf(\"\\ninput data\\n\"); for(i=0;i<2;i++,pp++) scanf(\"%s%d%d%s\ pp=boya; fwrite(pp,sizeof(struct stu),2,fp); rewind(fp); fread(pp,sizeof(struct stu),2,fp); printf(\"\\nname\number age addr\\n\"); 页脚下载后可删除,如有侵权请告知删除! for(i=0;i<2;i++,pp++) printf(\"%s\%5d%7d %s\\n\ fclose(fp); getch(); } 【本文档内容可以自由复制内容或自由编辑修改内容期待你的好评和关注,我们将会做得更好】 页脚下载后可删除,如有侵权请告知删除! 因篇幅问题不能全部显示,请点此查看更多更全内容