C语言测试题:文件

合集下载

c语言测试题目及答案

c语言测试题目及答案

c语言测试题目及答案一、选择题(每题2分,共20分)1. 下列哪个关键字不是C语言的控制语句?A. ifB. switchC. whileD. loop答案:D2. C语言中,一个整型变量int占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 在C语言中,以下哪个运算符用于计算两个数的乘方?A. *B. /C. ^D. %答案:C4. 下列哪个函数用于计算一个数的绝对值?A. abs()B. max()C. min()D. pow()答案:A5. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. {"Hello World"}D. ["Hello World"]答案:A6. 在C语言中,以下哪个是正确的数组声明?A. int array[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};B. int array[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};C. int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};D. int array[10] = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;答案:B7. 在C语言中,以下哪个是正确的函数声明?A. void myFunction(int x, int y);B. int myFunction();C. void myFunction(int x, int y) {}D. int myFunction(int x, int y);答案:A8. 在C语言中,以下哪个是正确的递归函数调用?A. func(5);B. func(func(5));C. func(func(5, 3));D. func(5, 3);答案:B9. 下列哪个是C语言中合法的变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D10. 在C语言中,以下哪个是正确的结构体声明?A. struct Person { int age; char name[50]; };B. struct { int age; char name[50]; };C. Person { int age; char name[50]; };D. Person struct { int age; char name[50]; };答案:A二、填空题(每空2分,共20分)1. C语言中,用于定义一个函数的关键字是________。

C语言基础知识测试题 全面完整

C语言基础知识测试题 全面完整

C语言基础知识测试题全面完整c语言基础知识测试题全面完整基础知识测试题一.单项选择题1.以下不正确的c语言标识符是(d)a.abcb.abcc.a_bcd.ab.c2.以下正确的c语言标识符是(c)a.%xb.a+bc.a123d.test!3.一个c语言程序的继续执行从(a)。

a.main()函数已经开始,直至main()函数完结b.第一个函数已经开始,直至最后一个函数完结c.第一个语句已经开始,直至最后一个语句完结d.main()函数已经开始,直至最后一函数完结4.在c语言程序中,main(c)的边线()。

a.必须做为第一个函数b.必须作为最后一个函数c.任意d.必须放到它所调用的函数之后5.一个c语言程序就是由(b)。

a.一个主程序和若干个子程序共同组成b.一个或多个函数共同组成c.若干过程共同组成d.若干子程序共同组成6.c语言源程序的基本单位是(b)。

a.过程b.函数c.子程序d.标识符7.编辑程序的功能就是(a)。

a.创建并修正程序c.将c源程序编译成目标程序d.调试程序e.命令计算机继续执行选定的操作方式8.c编译程序就是(d)。

a.c语言程序的机器语言版本b.一组机器语言指.d.将c源程序编译成目标程序的程序f.由制造厂家提供更多的一套应用软件b9.不属于字符型常量的就是(d)a.'a'b.\'\\x72'10.设charch;以下恰当的赋值语句就是:(b)a.ch='123';b.ch='\\xff';c.ch='\\08';d.ch=\11.以下并使i的运算结果为4的表达式就是(d)a.inti=0,j=0;(i=3,(j++)+i);b.inti=1,j=0;j=i=((i=3)*2);c.inti=0,j=1;(j==1)?(i=1):(i=3);d.inti=1,j=1;i+=j+=2;a12.若t为double类型,表达式t=1,t+5,t++的值是(d)a.1b.6.0c.2.0d.1.0c13.设整型变量m,n,a,b,c,d均为1,继续执行“(m=a>b)&&(n=a>b)”后m,n的值就是(b)a.0,0b.0,1c.1,0d.1,1b14.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(ca.3,3,2b.3,2,2c.3,2,3d.2,3,2b15.若a=1,b=2,c=3,d=4,则条件表达式a16.设intn=7;则++n+1==9的结果是(c)a.trueb.falsec.1d.017.设a=2,b=2;则++a+b的结果就是(d),a的结果就是(b),b的结果就是(a)a.2b.3c.4d.518.设a=2,则执行b=a==!a;语句后,b的结果是(a)a.0b.1c.2d.319.建有以下语句,则c的二进制值就是()chara=3,b=6,c;c=a^b<<2;a.00011011b.00010100c.00011100d.0001100020.在c语言类型说明中,int、char、short等类型的长度是(a)a.固定的b.由用户自己定义的c.任意的d.与机器字的长度有关的二.填空题1.c语言中的标识符就可以由三种字符共同组成,它们就是、、。

C语言期中测试题(含答案)

C语言期中测试题(含答案)

一、填空1.C语言源程序文件的后缀是 .c 。

2.结构化程序由顺序结构、选择结构、循环结构三种基本结构组成。

3.在C语言中,用关键字 int 定义基本整型变量,一个基本整型变量系统分配 2 字节,用关键字 float定义单精度实型变量,一个单精度实型变量系统分配 4 字节,用关键字 double 定义双精度实型变量,一个双精度实型变量系统分配 8 字节。

二、选择1.以下选项中正确的实型常量是( A )A.12. B.-20 C. 1,000 D. 4 5 62.以下选项中不正确的实型常量是(无正确答案)A. B. C. D. 456e-23.以下选项中不合法的用户标示符是( C )A. _123 B.A12_1 C. A $ D.Dim4.C语言中运算对象必须是整型的运算符是( A )A .% B./ C.! D.*5. 若变量已正确定义并赋值,符合C语言语法的表达式是( B )A.a=a+7 ; B.a=7+b+c,a++ C. int%4) D.a=a+7=c+b 6.下面合法的赋值语句是( C )A.a=b=58 B.k=int(a+b) C. a=58,b=58 D.--i 7.若变量已正确定义为int ,要给a,b,c输入数据,正确的输入语句是( D ) A.read(a,b,c) B.scanf(“%d%d%d”,a,b,c)C.scanf(“%D%D%D”,&a,&b,&c) D.scanf(“%d%d%d”,&a,&b,&c) 8.若变量a,b,t已正确定义,要将a和b中的数进行交换,以下选项中不正确的语句组是( C )A.a=a+b,b=a-b,a=a-b; B. t=a,a=b,b=t;C.a=t;t=b;b=a D.t=b;b=a;a=t;9.若有正确定义语句:double x=;语句printf(“%f\n ”,(int)(x*1000+/(double)1000);的输出结果是( D )A .输出格式说明与输出项不匹配,输出无定值B .C .!D .10. 若有以下程序段:int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%d\\n ”,a,b,c);执行后的输出结果是( B )A .3,0,-10B .0,0,5C .-10,3,-10D .3,0,311.下列运算符中优先级别最高的是( A )A . !B .%C .-=D .&&12.为表示关系:z y x ≥≥,应使用的C 语言表达式是( A )A .(x>=y)&&(y>=z)B .(x>=y)AND(y>=x)C .(x>=y>=z)D .(x>=y)&(y>=z)13.设a 、b 和c 都是int 型变量,且a=3,b=4,c=5,则以下的表达式中值为0的表达式是( D )A .a&&bB .a<=bC .a||b+c&&b-cD .!((a<b)&&!c||1)14.有以下程序:#include<>main(){ int a=2,b=-1,c=2;if(a<b)if(b<0)c=0;elsec+=1;printf(“%d\n”,c);}程序的运行结果是( C )A.0 B.1 C.2 D.315.有以下程序:#include<>main(){ int w=4,x=3,y=2,z=1;printf(“%d\n”,(w<xw:z<yz:x));}程序的运行结果( A )A.1 B. 2 C.3 D. 416.有以下程序:main(){int a,b,s;scanf(“%d %d”,&a,&b);s=a;if(a<b)s=b;s*=s;printf(“%d\n”,s);}若执行以上程序时从键盘上输入3和4,则输出结果是( B ) A.14 B.16 C.18 D.2017.有以下程序段:y=-1;if(x!=0)if(x>0) y=1;else y=0;其能正确表示的数学函数关系是( C )A .⎪⎩⎪⎨⎧>=<-=)0(1)0(0)0(1x x x yB .⎪⎩⎪⎨⎧>=-<=)0(0)0(1)0(1x x x yC .⎪⎩⎪⎨⎧>=-<=)0(1)0(1)0(0x x x yD .⎪⎩⎪⎨⎧>=<-=)0(0)0(1)0(1x x x y18.若有定义语句int a, b ;double x ;则下列选项中正确的是( C )A .switch (x%2)B .switch ((int )x/ {case 0: a++; break; {case 0: a++; break; case 1: b++; break; case 1: b++; break; default : a++; b++; default : a++; b++;} }C .switch ((int )x%2)D .switch ((int )(x )%2){case 0: a++; break; {case : a++; break; case 1: b++; break; case : b++; break; default : a++; b++; default : a++; b++;} }19.有以下程序段:int k,j,s;for(k=2;k<6;k++,k++){s=1;for(j=k;j<6;j++)s+=j;}printf(“%d\n”,s);程序段的输出结果是( D )A.9 B.1 C.11 D.10 20.有以下程序段:int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf(“%d\n”,m);程序段的输出结果是( C )A.12 B.15 C.20 D.25 21.有以下程序段:int n=10;while(n>7){ n--;printf(“%d\n”,n);}程序段的输出结果是( B )A.10 B.9 C.10 D.99 8 9 88 7 8 77 6 22.有以下程序段:int x=3;doprintf(“%3d”,x-=2);while(!(--x));程序段的输出结果是( C )A.1 B.3 0 C.1 -2 D.死循环23.有以下程序:main(){int i,sum;for(i=1;i<=6;i++)sum+=sum;printf(“%d\n”,sum;);}程序的输出结果是( C )A..15 B.14 C.不确定 D.024.有以下程序:#include<>main(){int i;for(i=1;i<=5;i++){if(i%2)printf(“*”);elsecontinue;printf(“#”);}pintf(“$\n”);}程序的输出结果是( A )A.*#*#*#$ B.#*#*#*$ C.*#*#$ D.#*#*$25.有以下程序:#include<>main(){ int x,i;for(i=1;i<=100;i++){x=i;if(++x%2==0)if(++x%3==0)if(++x%7==0)printf(“%d”,x);}printf(“\n”);}程序的输出结果是( A )A.28 70 B.42 84 C.26 68 D.39 81。

2022年3月计算机二级C语言笔试真题文字word版详细答案解析2

2022年3月计算机二级C语言笔试真题文字word版详细答案解析2

2022年3月计算机二级C语言笔试真题文字word版详细答案解析22022年3月全国计算机等级考试二级C语言真题一、选择题1、下列叙述中正确的是:A、循环队列是队列的一种顺序存储结构B、循环队列是队列的一种链式存储结构C、循环队列是非线性结构D、循环队列是一直逻辑结构2、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈和队列都是非线性结构D、以上三种说法都不对3、一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为A、4B、6C、10D、164、在下列模式中,能够给出数据库物理存储结构与物理存取方法的是A、内模式B、外模式C、概念模式D、逻辑模式5、在满足实体完整性约束的条件下A、一个关系中可以没有候选关键词B、一个关系中只能有一个候选关键词C、一个关系中必须有多个候选关键词D、一个关系中应该有一个或者多个候选关键词6、有三个关系R、S和T如下:RSTABCABCABCa12bc2311ab1221ab2311则由关系R和S得到关系T的操作是A、自然连接B、并C、差D、交7、软件生命周期中的活动不包括A、软件维护B、市场调研C、软件测试D、需求分析8、下面不属于需求分析阶段任务的是A、确定软件系统的功能需求B、确定软件系统的系统的系能需求B、制定软件集成测试计划D、需求规格说明书审评9、在黑盒测试方式中,设计测试用例的主要根据是A、程序外部功能B、程序内部逻辑C、程序数据结构D、程序流程图10、在软件设计中不使用的工具是A、系统结构图B、程序流程图C、PAD图D、数据流图(DFD图)11、针对简单程序设计,以下叙述的实施步骤正确的是A、确定算法和数据结构、编码、调试、整理文档B、编码、确定算法和数据结构、调试、整理文档C、整理文档、确定算法和数据结构、编码、调试D、确定算法和数据结构、调试、编码、整理文档12、关于C语言中数的表示,以下叙述正确的是2022年3月全国计算机等级考试二级C语言真题A、只有整型数在允许范围内能精确无误的表示,实型数会有误差B、只要在在允许范围内整型和实型都能精确表示C、只有实型数在允许范围内能精确无误的表示,整型数会有误差D、只有八进制表示的数在不会有误差13、以下关于算法叙述错误的是A、算法可以用伪代码、流程图等多种形式来描述B、一个正确的算法必须有输入C、一个正确的算法必须有输出D、用流程图可以描述的算法可以用任何一种计算机高级语言编写成程序代码14、以下叙述错误的是A、一个C程序可以包含多个不同名的函数B、一个C程序只能有一个主函数C、C程序在书写时,有严格的缩进要求,否则不能编译通过D、C程序的主函数必须用main作为函数名15、设有以下语句Charch1,ch2,canf(”%c%c”,&ch1,&ch2);若要为变量ch1和ch2分别输入字符A和B,正确的输入形式应该是A、A和B之间用逗号间隔B、A和B之间不能有任何间隔符C、A和B之间可以用回车间隔D、A和B之间用空格间隔16、以下选项中非法的字符常量是A、’\\102’B、’\\65’C、’\\某ff’D、’\\019’17、有以下程序#includeMain(){IntA=0,B=0,C=0;C=(A-=A-5);(A=B,B+=4);Printf(“%d,%d,%d\\n”,A,B,C)}程序运行后输出的结果是A0,4,5B4,4,5C4,4,4D0,0,018、设变量均已正确定义并且赋值,以下与其他三组输出结构不同的一组语句是A、某++;printf((“%d\\n”,某);B、n=++某;printf((“%d\\n”,n);C、++某;printf((“%d\\n”,某);D、n=某++;printf((“%d\\n”,n);19、以下选项中,能表示逻辑值“假”的是A1B0.000001C0D100.020、有以下程序#includeMain(){inta;Scanf(“%d”,&a);If(a++<9)printf((“%d\\n”,a);Eleprintf((“%d\\n”,a--);}2022年3月全国计算机等级考试二级C语言真题程序运行时键盘输入9,则输出的结构是A、10B11C9D821、有以下程序#includeMain(){int=0,n;For(n=0;n<3;nCae2;+=2;break;Cae3;+3;Cae4;+=4;}printf((“%d\\n”,);}}程序运行后的结果是A1,2,4B1,3,6C3,10,14D3,6,1022、若k是int类型变量,且有以下for语句For(k=-1;k<0;k++)printf(某某某某\\n”);下面关于语句执行情况的叙述中正确的是A、循环体执行一次B、循环体执行两次C、循环体一次也不执行D、构成无限循环23、有以下程序#includeMain(){charA,B,C;B=’1’;C=’A’For(A=0;A<6;A++){if(A%2)putchar(B+A);Eleputchar(C+A);}}程序运行后输出的结果是A1B3D5FBABCDFECA2C4E6D12345624、设有如下定义语句Intm[]={2,4,6,8},某k=m;以下选项中,表达式的值为6的是A某(k+2)Bk+2C某k+2D某k+=225、fun函数的功能是:通过键盘输入给某所指的整型数组所有元素赋值。

c语言测试题

c语言测试题

c语言测试题1.题目一编写一个C语言程序,要求从键盘输入两个整数,然后输出它们的和。

解答:```c#include <stdio.h>int main() {int num1, num2;printf("请输入两个整数: ");scanf("%d %d", &num1, &num2);int sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```2.题目二编写一个C语言程序,要求从键盘输入一个整数,然后判断它是否为素数。

解答:```c#include <stdio.h>int isPrime(int num) {if (num <= 1) {return 0;}for (int i = 2; i * i <= num; i++) { if (num % i == 0) {return 0;}}return 1;}int main() {int num;printf("请输入一个整数: ");scanf("%d", &num);if (isPrime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}```3.题目三编写一个C语言程序,要求实现冒泡排序算法对一个数组进行排序。

解答:```c#include <stdio.h>void bubbleSort(int arr[], int size) {for (int i = 0; i < size - 1; i++) {for (int j = 0; j < size - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}void printArray(int arr[], int size) {for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {int arr[] = {5, 2, 9, 1, 3};int size = sizeof(arr) / sizeof(arr[0]); printf("排序前的数组: ");printArray(arr, size);bubbleSort(arr, size);printf("排序后的数组: ");printArray(arr, size);return 0;}```以上是三个C语言测试题的解答,分别涉及输入输出、数学运算和数组排序等。

C语言试题6.

C语言试题6.

C语言试题及答案(6)我爱学习2009-09-13 10:05:46 阅读3030 评论1 字号:大中小C语言程序设计技能测试考试说明1、在D盘或E盘根目录下创建文件夹以存放程序文件。

2、1-4题的程序名称分别为:q1.c、q2.c、q3.c、q4.c 。

上传源程序代码到教师指定机器。

3、第1-3题,任意选择两道题,第4题必做。

C语言程序设计技能测试题(第1套)一、利用循环打印出以下图案(行数由键盘输入)。

(30分)**********二、输入一个正整数,按照逆序显示输出各位数字。

例如:输入2389,则输出为9832。

(30分)三、求s=1!+2!+3!+4!+5!并输出结果。

(30分)四、学生记录由学号、姓名、成绩组成(学号、成绩都为整数),使用结构体数组,将下列学生的数据按成绩(由大到小)排序后显示到屏幕上。

(学生数据可以直接在程序中定义,或者从键盘录入)(40分)1 Li 902 wang 953 zhao 804 liu 855 chen 946 yang 79C语言程序设计技能测试考试说明1、在D盘或E盘根目录下创建文件夹以存放程序文件。

2、1-4题的程序名称分别为:q1.c、q2.c、q3.c、q4.c 。

上传源程序代码到教师指定机器。

3、第1-3题,任意选择两道题,第4题必做。

C语言程序设计技能测试题(第2套)一、从键盘输入一个正整数,输出各位数字的和。

(30分)例如:输入2389,输出为22。

(因为2+3+8+9=22)。

二、输出101-200之间的所有素数。

(30分)三、有一个已经排好序的数组a[30]={7,10,13,16,20,24,26,46,68,69,99}。

从键盘录入一个整数,要求按原来的排序规律将它插入数组中,并显示插入后的数组的内容。

(30分)四、学生记录由学号、姓名、成绩组成(学号、成绩都为整数),将下列学生数据中不及格的学生信息显示出来。

(学生数据可以直接在程序中定义,或者从键盘录入)(40分)2 wang 953 zhao 434 liu 855 chen 946 yang 51C语言程序设计技能测试考试说明1、在D盘或E盘根目录下创建文件夹以存放程序文件。

C语言文件选择题

C语言文件选择题

C语言文件选择题(答案在最后)1、标准库函数fgets(s,n,f)的功能是A) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存2、在C中,对文件的存取以________为单位A) 记录B) 字节C) 元素D) 簇3、下面的变量表示文件指针变量的是A) FILE *fp B) FILE fpC) FILER *fp D) file *fp4、在C中,下面对文件的叙述正确的是A) 用“r”方式打开的文件只能向文件写数据B) 用“R”方式也可以打开文件C) 用“w”方式打开的文件只能用于向文件写数据,且该文件可以不存在D) 用“a”方式可以打开不存在的文件5、在C中,当文件指针变fp已指向“文件结束”,则函数feof(fp)的值是A) .t. B) .F.C) 0 D) 16、在C中,系统自动定义了3个文件指针stdin,stdout和stderr分别指向终端输入、终端输出和标准出错输出,则函数fputc(ch,stdout)的功能是A) 从键盘输入一个字符给字符变量chB) 在屏幕上输出字符变量ch的值C) 将字符变量的值写入文件stdout中D) 将字符变量ch的值赋给stdout7、下面程序段的功能是#include <stdio.h>main(){char s1;s1=putc(getc(stdin),stdout);}A) 从键盘输入一个字符给字符变量s1B) 从键盘输入一个字符,然后再输出到屏幕C) 从键盘输入一个字符,然后在输出到屏幕的同时赋给变量s1D) 在屏幕上输出stdout的值8、在C中,常用如下方法打开一个文件if((fp=fopen("file1.c","r" ))==NULL){printf("cannot open this file \n");exit(0);}A) 退出C环境B) 退出所在的复合语句C) 当文件不能正常打开时,关闭所有的文件,并终止正在调用的过程D) 当文件正常打开时,终止正在调用的过程9、执行如下程序段#include <stdio.h>FILE *fp;fp=fopen("file","w" );则磁盘上生成的文件的全名是A) file B) file.cC) file.dat D) file.txt10、在内存与磁盘频繁交换数据的情况下,对磁盘文件的读写最好使用的函数是A) fscanF,fprintf B) fread,fwriteC) getc,putc D) putchar,getchar11、在C中若按照数据的格式划分,文件可分为A) 程序文件和数据文件B) 磁盘文件和设备文件C) 二进制文件和文本文件D) 顺序文件和随机文件12、若fp是指向某文件的指针,且已读到该文件的末尾,则C语言函数feof(fp) 的返回值是A) EOF B) -1C) 非零值D) NULL13、在C中,缓冲文件系统是指A) 缓冲区是由用户自己申请的B) 缓冲区是由系统自动建立的D) 缓冲区是根据文件的大小决定的D) 缓冲区是根据内存的大小决定的14、在C中,文件型指针是A) 一种字符型的指针变量B) 一种结构型的指针变量C) 一种共用型的指针变量D) 一种枚举型的指针变量15、在C中,标准输出设备是指A) 键盘B) 鼠标C) 硬盘D) 光笔16、在C中,标准输出设备和标准错误输出设备是指显示器,它们对应的指针名分别为A) stdin,stdio B) STDOUT,STDERRC) stdout,stderr D) stderr,stdout17、在C中,所有的磁盘文件在操作前都必须打开,打开文件函数的调用格式为: fopen(文件名,文件操作方式);其中文件名是要打开的文件的全名,它可以是:A) 字符变量名、字符串常量、字符数组名C) 字符串常量、存放字符串的字符数组名、指向字符串的指针变量D) 字符数组名、文件的主名、字符串变量名18、在C中,打开文件的程序段中正确的是A) #include <stdio.h> B) #include <stdio.h>FILE *fp; FILE fp;fp=fopen("file1.c","WB"); fp=fopen("file1.c","w");C) #include <stdio.h> D) #include <string.h>FILE *fp; FILE *fp;fp=fopen("file1.c","w"); fp=fopen("file1.c","w");19、在C中,打开文件时,选用的文件操作方式为"wb",则下列说法中错误的是A) 要打开的文件必须存在B) 要打开的文件可以不存在C) 打开文件后可以读取数据D) 要打开的文件是二进制文件20、在C中,如果要打开C盘一级目录ccw下,名为“ccw.dat”的二进制文件用于读和追加写,则调用打开文件函数的格式为A) fopen("c:\ccw\ccw.dat","ab") B) fopen("c:\ccw.dat","ab+")C) fopen("c:ccw\ccw.dat","ab+") D) fopen("c:\ccw\ccw.dat","ab+")21、在C中,假设文件型指针fp已经指向可写的磁盘文件,并且正确执行了函数调用fputc('A',fp),则该次调用后函数返回的值是A) 字符'A'或整数65 B) 符号常量EOFC) 整数1 D) 整数-122、以下函数,一般情况下,功能相同的是A) fputc和putchar B) fwrite和fputcC) fread和fgetc D) putc和fputc23、设文件file1.c已存在,且有如下列程序段#include <stdio.h>FILE *fp1;fp1=fopen("file1.c","r");while(!feof(fp1)) putchar(getc(fp1));该程序段的功能是A) 将文件file1.c的内容输出到屏幕B) 将文件file1.c的内容输出到文件C) 将文件file1.c的第一个字符输出到屏幕D) 什么也不干24、设文件stu1.dat已存在,且有如下列程序段#include <stdio.h>FILE *fp1, *fp2;fp1=fopen("stud1.dat","r");fp2=fopen("stud2.dat","w");while(feof(fp1)) putc(getc(fp1),fp2);该程序段的功能是B) 将文件stud2.dat的内容复制到文件stud1.dat中C) 屏幕输出stud1.dat的内容D) 什么也不干25、下面程序段定义了函数putint,该函数的功能是putint(int n,FILE *fp){char *s;int num;s=&n;for(num=0;num<2;num++)putc(s[num],fp);}A) 屏幕输出一整数B) 屏幕输出一字符C) 向文件写入一实数D) 向文件写入一整数26、如果要将存放在双精度型数组a[10]中的10个双精度型实数写入文件型指针fp1指向的文件中,正确的语句是A) for(i=0;i<80;i++) fputc(a[i],fp1);B) for(i=0;i<10;i++) fputc(&a[i],fp1);C) for(i=0;i<10;i++) fwrite(&a[i],8,1,fp1);D) fwrite(fp1,8,10,a);27、如果将文件型指针fp指向的文件内部指针置于文件尾,正确的语句是A) feof(fp); B) rewind(fp);C) fseek(fp,0L,0); D) fseek(fp,0L,2);28、如果文件型指针fp指向的文件刚刚执行了一次读操作,则关于表达式“ferror(fp)”的正确说法是A) 如果读操作发生错误,则返回1 B) 如果读操作发生错误,则返回0C) 如果读操作未发生错误,则返回1 D) 如果读操作未发生错误,则返回029、下列程序的主要功能是#include "stdio.h"main(){FILE *fp;long count=0;fp=fopen("q1.c","r");while(!feof(fp)){fgetc(fp);count++;}printf("count=%ld\n",count);fclose(fp);}A) 读文件中的字符B) 统计文件中的字符数并输出C) 打开文件D) 关闭文件30、下列程序的主要功能是#include "stdio.h"main()long count1=0,count2=0;fp=fopen("q1.c","r");while(!feof(fp)){ch=fgetc(fp);if(ch=='{'}count++;if(ch==')') count2++;}if(count1==count2) printf("YES!\n");else printf("ERROR!\n");fclose(fp);}A) 读文件中的字符'{'和'}' B) 统计文件中字符'{'和'}'的个数C) 输出“YES!”和“ERROE!”D) 检查C语言源程序中的花括号是否配对31、假定名为“data1.dat”的二进制文件中依次存放了下列4个单精度实数:-12.1 12.2 -12.3 12.4则下面程序运行后的结果是#include "stdio.h"main(){FILE *fp;float sum=0.0,x;int i;fp=fopen("data1.dat","rb")for(i=0;i<4;i++,i++){fread(&x,4,1,fp);sum+=x;}printf("%f\n",sum); fclose(fp);}A) 0.1 B) 0.0C) -12.3 D) 12.432、下面程序的主要功能是:#include "stdio.h"main(){FILE *fp;float x[4]={-12.1,12.2,-12.3,12.4};int i;fp=fopen("data1.dat","wb")for(i=0;i<4;i++){fwrite(&x[i],4,1,fp);fclose(fp);}}A) 创建空文档data1.datB) 创建文本文件data1.datC) 将数组x中的四个实数写入文件data1.dat中D) 定义数组x33、有如下程序段:#include "stdio.h"main(){FILE *fp;fp=fopen("name.txt","w")for(i=0;i<40;i++){scanf("%s",s); fputc(s,fp);fputc("\n",fp);}fclose(fp);}下面说法正确的是A) 将39个人的名字写入文本文件name.txt中B) 将40个人的名字写入文本文件name.txt中B) 文件name.txt中只能写入40个字符D) 文件name.txt必须存在34、有如下函数段:int file_err(fpp)FILE *fpp;{ if(ferror(fpp))return(1);elsereturn(0);}则下列说法正确的是A) 函数的功能是测试fpp所指向的文件最后一次操作是否正确B) 函数的功能是返回1C) 函数的功能是返回0D) 函数的功能是测试fpp所指向的文件最近一次操作是否正确35、函数fopen()的返回值不能是A) NULL B) 0C) 1 D) 某个内存地址36、以只写方式打开一个二进制文件,应选择的文件操作方式是A) "a+" B)"w+"C) "RB" D) "wb"37、存储整型数据-7865时,在二进制文件和文本文件中占用的字节数分别是A) 2和2 B) 2和5C) 5和5 D) 5和238、在C中,二进制文件中的数据存放格式和整数-12345占用的字节数分别为A) ASCII码方式、4个字节B) ASCII码方式、2个字节C) 二进制数方式、2个字节D) 二进制数方式、4个字节答案:1、B2、B3、A4、C5、D6、B7、C8、C9、A 10、B 11、C 12、C 13、B 14、B 15、A 16、C 17、C 18、C 19、A 20、D 21、A 22、D 23、A 24、D 25、D 26、C 27、D 28、D 29、B 30、D 31、A 32、C 33、B 34、C 36、D 37、B。

c语言入门练习题

c语言入门练习题

C语言入门练习题一、基础知识篇1.1 变量与常量1. 定义一个整型变量并赋值为10。

2. 声明一个浮点型常量,其值为3.14。

3. 将字符型变量 'A' 赋值给另一个字符型变量。

1.2 数据类型1. 将一个整型变量转换为浮点型变量。

2. 将一个长整型变量赋值给一个短整型变量。

3. 编写一个程序,输出不同数据类型所占的字节数。

1.3 运算符1. 计算5加3乘2的结果。

2. 判断两个整型变量是否相等。

3. 使用自增运算符使变量i的值增加1。

二、控制结构篇2.1 顺序结构1. 编写一个程序,输出1到10的整数。

2. 输出用户输入的两个整数中的较大值。

3. 计算并输出圆的面积(给定半径)。

2.2 选择结构1. 判断一个整数是正数、负数还是零。

2. 根据用户输入的成绩,输出对应的等级(A、B、C、D、E)。

3. 编写一个程序,实现石头剪刀布的游戏。

2.3 循环结构1. 计算1到100所有整数的和。

2. 输出所有的水仙花数(一个三位数,其各位数字的立方和等于该数本身)。

3. 使用循环结构输出九九乘法表。

三、函数篇3.1 函数定义与调用1. 编写一个函数,计算两个整数的和。

2. 定义一个函数,实现字符串的复制。

3. 创建一个函数,判断一个数是否为素数。

3.2 递归函数1. 使用递归函数计算斐波那契数列的第n项。

2. 编写一个递归函数,实现字符串的逆序输出。

3. 利用递归函数求解汉诺塔问题。

四、数组篇4.1 一维数组1. 初始化一个包含10个整数的数组,并输出其元素。

2. 计算一维数组中所有元素的和。

3. 找出一维数组中的最大值和最小值。

4.2 二维数组1. 创建一个3行4列的二维数组,并输出其元素。

2. 计算二维数组对角线元素的和。

3. 实现矩阵的转置。

五、指针篇5.1 指针基本操作1. 声明一个整型变量和一个指向该变量的指针,并输出指针所指向的值。

2. 使用指针实现两个整数的交换。

3. 编写一个函数,通过指针参数修改传入的字符串。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题:(1)以下叙述中错误的是 CA)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(2)有以下程序#include <stdio.h>main(){ FILE *fp; int i, k, n;fp=fopen("data.dat", "w+");for(i=1; i<6; i++){ fprintf(fp,"%d ",i);if(i%3==0) fprintf(fp,"\n");}rewind(fp);fscanf(fp, "%d%d", &k, &n); printf("%d %d\n", k, n);fclose(fp);}程序运行后的输出结果是 DA)0 0B)123 45C)1 4D)1 2(3)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 DA)feof(fp)B)ftell(fp)C)fgetc(fp)D)rewind(fp)(4)有以下程序#include "stdio.h"void WriteStr(char *fn,char *str){FILE *fp;fp=fopen(fn,"W");fputs(str,fp);fclose(fp);}main(){WriteStr("t1.dat","start");}程序运行后,文件t1.dat中的内容是 BA)startB)endC)startendD)endrt(5) 有如下程序#include <stdio.h>main(){FILE *fp1;fp1=fopen("f1.txt","w");fprintf(fp1,"abc");fclose(fp1);}若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为 CA) goodabcB) abcdC) abcD) abcgood(6) 有以下程序#include <stdio.h>main( ){ FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i<4;i++) fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n);printf(“%d %d\n”,k,n);fclose(fp);}执行后输出结果是 BA) 1 2B) 123 0C) 1 23D) 0 0(7) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#include <stdio.h>main( ){ FILE *fp; int i,a[4]={1,2,3,4},b;for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SEEK_END) ;fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B) ;}执行后输出结果是 DA) 2B) 1C) 4D) 3(8) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为DA) 0B) 1C) -1D) 一个非0值(9) 下列关于C语言数据文件的叙述中正确的是 AA) 文件由ASCII码字符序列组成,C语言只能读写文本文件B) 文件由二进制数据序列组成,C语言只能读写二进制文件C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(10) 以下叙述中不正确的是 DA)C语言中的文本文件以ASCⅡ码形式存储数据B)C语言中对二进制文件的访问速度比文本文件快C)C语言中,随机读写方式不适用于文本文件D)C语言中,顺序读写方式不适用于二进制文件11) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

#include <stdio.h>main(){ FILE *fout; char ch;fout=fopen('abc.txt',’w');ch=fgetc(stdin);while(ch!=’#’){ fputc(ch,fout);ch=fgetc(stdin);}fclose(fout);}出错的原因是AA) 函数fopen调用形式错误 B) 输入文件没有关闭C) 函数fgetc调用形式错误 D) 文件指针stdin没有定义(12) 有以下程序#include <stdio.h>main(){ FILE *fp; int i=20,j=30,k,n;fp=fopen(“d1.dat”“w”);fprintf(fp,“%d\n”,i);fprintf(fp,“%d\n”j);fclose(fp);fp=fopen(“d1.dat”, “r”);fp=fscanf(fp,“%d%d”,&k,&n); printf(“%d%d\n”,k,n);fclose(fp);}程序运行后的输出结果是AA) 20 30B) 20 50C) 30 50D) 30 20(13) 以下叙述中错误的是DA) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以B) 在程序结束时,应当用fclose函数关闭已打开的文件C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据D) 不可以用FILE定义指向二进制文件的文件指针(14) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是BA) fopen("A:\user\abc.txt","r")B) fopen("A:\\user\\abc.txt","r+")C) fopen("A:\user\abc.txt","rb")C) fopen("A:\\user\\abc.txt","w")(15) 下面的程序执行后,文件testt.t中的内容是A#include <stdio.h>void fun(char *fname.,char *st){ FILE *myf; int i;myf=fopen(fname,“w” );for(i=0;i<strlen(st); i++)fputc(st[i],myf);fclose(myf);}main(){ fun(“test”,“new world”; fun(“test”,“hello,”0;)A)hello,B)new worldhello,C)new worldD)hello, rld(16) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是CA) EOFB) -1C) 非零值D) NULL(17) 在C程序中,可把整型数以二进制形式存放到文件中的函数是AA) fprintf函数B) fread函数C) fwrite函数D) fputc函数(18) 标准函数fgets(s, n, f) 的功能是BA) 从文件f中读取长度为n的字符串存入指针s所指的内存B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存C) 从文件f中读取n个字符串存入指针s所指的内存D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存二、填空题:(1) 已有文本文件test.txt,其中的内容为:Hello,everyone!。

以下程序中,文件test.txt 已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是【1】。

#include <stdio.h>main(){ FILE *fr; char str[40];……fgets(str,5,fr);printf("%s\n",str);fclose(fr);}(2) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen( [2] );。

(3) 以下程序用来统计文件中字符个数。

请填空。

#include "stdio.h"main(){ FILE *fp; long num=0L;if((fp=fopen("fname.dat","r"))==NULL){ pirntf("Open error\n"); exit(0);}while( 【3】){ fgetc(fp); num++;}printf("num=%1d\n",num-1);fclose(fp);}(4) 以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE *myf; ling f1;myf= 【4】(“test.t”,“rb”);fseek(myf,0,SEEK_END); f1=ftel(myf);fclose(myf);printf(“%d\n”,f1);(5) 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。

请填空。

#include “stdio.h”FILE *fp;{ char ch;if( (fp=fopen ( 【5】) )= = NULL)exit(0);while( (ch=getchar( )) !=’@’) fputc (ch,fp);fclose(fp);}(6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。

相关文档
最新文档