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. 编写一个函数,通过指针参数修改传入的字符串。

c语言试卷

c语言试卷

c语言试卷(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--;C 语言程序设计测试题姓名:成绩:一.填空:15 分1.在 scanf 函数的格式控制串中,转换说明符2.C 语言程序都是从3.函数体用4.c 语句都用5.标准库函数6.转义序列\n 表示、和函数开始执行。

结束。

结束。

在屏幕上显示信息。

符,它把光标定位在屏幕下一行的开始位置。

和_____。

开始,用表示要输入一个整数。

7. 所有的程序都可以用三种控制结构编写。

这三种控制结构是8.用花括号组合在一起的多个语句称为9.10. 存储类别说明符有 auto、、循环结构在条件为真时反复执行一条语句或一组语句。

二.判断下述说法是否正断。

如不正确,说明理由,20 分。

1. printf 函数总是从新行的起始位置开始打印。

( )2. 计算机会把/*和*/之间的注释文本打印到屏幕上。

( )3. 在 printf 函数的格式控制串中使用转义序列\n 会把光标定位到屏幕上下一行的开始位置。

( )4. 所有的变量在使用前都必须予以声明。

( )5. 在声明变量时必须给出变量的类型。

( )6. C 语言认为变量 number 和 NuMbEr 是相同的。

()7. 声明语句可放在函数体中的任何位置。

()8. printf 函数的格式控制串之后的所有参数的前面都必须有&。

()9. 求余运算符%只能用于两个整数操作数。

()10. 算述运算*、/、+和一具有相同的优先级。

()三、选 择 题 , 30 分。

1. 在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。

设 一表达式中包含有 int 、long 、unsigned 、char 类型的变量和数据,则表达式最 后的运算结果是 A 、 intB 、 char类型数据。

C 、 unsignedD 、 long。

D 、 -1,655352. 若 int 型数据占 2 个字节,则以下语句的输出为int k=-1; A 、 -1,-1printf(“%d,%u \n”,k,k); B 、 -1,32767C 、 -1,327683. 若 a, b 均为 int 型变量,x, y 均为 float 型变量,正确的输入函数调用 是。

C语言28-32MicrosoftWord文档

C语言28-32MicrosoftWord文档

第28套二级C语言考试选择题部分模拟测试一、选择题(20小题,共20分)1. 调试程序是指对程序进行()。

A. 编辑B. 编译C. 查错和排错D. 连接2. 下列不属于C语言关键字的是()。

A. continueB. integerC. staticD. signed3. 若有定义:int x; 则语句 x=(2*3)+6%5; 运行后,x的值是()。

A. 8B. 7C. 6D. 6.54. 若有定义:int i=2,j=5; 则表达式(i+1,j+1,(++i)+(j--))的值为()。

A. 8B. 6C. 7D. 55. 以下程序的运行结果是()。

void main(){int a=65;char c='A';printf("%x,%d",a,c);}A. 65,aB. 41,aC. 65,65D. 41,656. 若有定义:int a=5,b=2,c=1;则表达式a-bA. 0B. 1C. 2D. -17. 若有定义:int a=6,b=2;char c1='a',c2='b';则表达式a+b%5+c2-c1的值是()。

A. 7B. 8C. 9D. 表达式错误8. 以下程序的运行结果是()。

void main( ){ int n=5;if(n++>=6)printf("%d\n",n);elseprintf("%d\n",++n);}A. 4B. 5C. 6D. 79. 以下程序的运行结果是()。

void main(){int sum = 0, item = 0;while(item < 5){item++;if(item == 2)continue;sum += item;}printf("%d\n",sum);}A. 10B. 13C. 15D. 110. 下面程序段的运行结果是()。

C语言在线测试题目及答案

C语言在线测试题目及答案

C语言在线测试题目及答案SANY GROUP system office room 【SANYUA16H-SANYHUASANYUA8Q8-第一章、第二章、第三章第一题、单项选择题(每题1分,5道题共5分)1、在以下关于C语言的叙述中,正确的说法是: BA、C语言比汇编语言快B、C语言比BASIC语言快C、C语言比BASIC语言和汇编语言都快D、C语言比BASIC语言慢2、在C语言中,不正确的常量是: BA、0xf6B、0876C、.5e-6D、 3e 23、属于低级语言的计算机语言是( )。

BA、机器语言B、汇编语言C、Java语言D、Pascal语言4、对于链接,正确的说法为()。

DA、链接是将源程序和库函数链接到一起,生成可执行程序。

B、链接是将源程序、目标程序和其他源程序链接到一起,生成可执行程序。

C、链接是将源程序、库函数和其他源程序链接到一起,生成可执行程序。

D、链接是将目标程序、库函数和其他目标程序链接到一起,生成可执行程序。

5、下列不能表示常量大写英文字母A的是()。

BA、常量:‘A’B、常量:“A”C、常量:‘\x41’D、常量:‘\101’第二题、多项选择题(每题2分,5道题共10分)1、对于16位系统中,C语言中整数 -8在内存中的错误存储形式是: BCDA、1111 1111 1111 1000B、1000 0000 0000 0000C、1000 0000 0000 1000D、1111 1111 1111 01112、下列关于C语言用户标识符的叙述中,不正确的叙述是: ACDA、用户标识符中可以出现下划线和中划线(减号)B、用户标识符中不可以出现中划线,但可以出现下划线C、用户标识符中可以出现下划线,但不可以放在用户标识符的开头D、用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3、关于C语言程序的语句,正确的说法是( )。

BDA、一条语句只能占一行B、一行可以书写多条语句C、语句的结束标识符是句号D、建议每条语句占一行4、与汇编程序相比,C语言程序的优点包括( )。

C语言选择题题库(116道)

C语言选择题题库(116道)

C语言选择题1、用C语言编写的源文件经过编译,若没有产生编译错误,则系统将()。

——[单选题]A 生成可执行目标文件B 生成目标文件C 输出运行结果D 自动保存源文件正确答案:B2、一个C语言程序是由()——[单选题]A 一个主程序和若干子程序组成B 函数组成C 若干过程组成D 若干子程序组成正确答案:B3、C 程序的执行过程在下列说法中,▁▁▁▁▁ 是正确的。

——[单选题]A C 程序从第一个函数开始执行,直到最后一个函数结束B C 程序从第一个函数开始执行,直到主函数结束C C 程序从主函数开始执行,直到最后一个函数结束D C 程序从主函数开始执行,直到主函数结束正确答案:D4、结构化程序由三种基本结构组成,三种基本结构组成的算法——[单选题]A 可以完成任何复杂的任务B 只能完成部分复杂的任务C 只能完成符合结构化的任务D 只能完成一些简单的任务正确答案:A5、以下叙述中错误的是()——[单选题]A c语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B c程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C 用c语言编写的程序称为源程序,它以ASCIl代码形式存放在一个文本文件中D c语言源程序经编译后生成后缀为.obj的目标程序正确答案:A6、以下叙述中,正确的是。

——[单选题]A C语言程序总是从第一个函数开始执行B 在C语言程序中,要调用的函数必须在main()函数中定义C C语言程序总是从main()函数开始执行D C 语言程序中的main()函数必须放在程序的开始部分正确答案:C7、C 风格的注释 C 风格的注释,也称块注释或多行注释,以▁▁▁ 开始,以▁▁▁ 结束。

——[单选题]A /* 和 */B { 和 }C [ 和 ]D ( 和 )正确答案:A8、空语句仅有一个▁▁▁▁▁ 的语句称为空语句。

——[单选题]A 逗号( , )B 句号( . )C 分号( ; )D 冒号( : )正确答案:C9、c语言规定,在一个源程序中,main函数的位置()。

C语言期末考试测试试卷(较难)

C语言期末考试测试试卷(较难)

一、选择题(每题2分,共20分)1. 以下关于指针的说法中,错误的是()A. 指针是一个变量,其值为另一个变量的地址B. 指针变量的值可以改变,但其指向的内存地址不能改变C. 指针变量的类型决定了其所指向的数据类型D. 指针变量可以进行算术运算2. 以下关于结构体的说法中,正确的是()A. 结构体变量的成员可以是另一个结构体类型B. 结构体变量的大小等于其所有成员大小之和C. 结构体变量可以直接赋值给另一个结构体变量D. 结构体变量不能作为函数的参数传递3. 以下关于文件操作的说法中,错误的是()A. fopen()函数用于打开文件B. fclose()函数用于关闭文件C. fprintf()函数用于向文件写入格式化数据D. fscanf()函数用于从文件读取格式化数据4. 以下关于动态内存分配的说法中,正确的是()A. malloc()函数用于分配内存,但不需要释放B. calloc()函数用于分配内存,并将内存初始化为0C. realloc()函数用于重新分配内存,但不能改变原有内存的大小D. free()函数用于释放内存,但不能释放由malloc()函数分配的内存5. 以下关于链表的说法中,错误的是()A. 链表是一种动态数据结构,可以动态地插入和删除元素B. 链表中的每个节点都包含数据域和指针域C. 链表的最后一个节点的指针域为NULLD. 链表的插入和删除操作的时间复杂度为O(n)6. 以下关于递归函数的说法中,正确的是()A. 递归函数必须有递归出口,否则会导致无限递归B. 递归函数的时间复杂度一定高于非递归函数C. 递归函数的空间复杂度一定低于非递归函数D. 递归函数的参数必须是指针类型7. 以下关于二维数组的说法中,错误的是()A. 二维数组的每个元素都是一维数组B. 二维数组的行数和列数必须在定义时指定C. 二维数组的元素在内存中是连续存储的D. 二维数组的元素可以通过下标访问8. 以下关于函数指针的说法中,正确的是()A. 函数指针可以指向任意类型的函数B. 函数指针可以作为函数的参数传递C. 函数指针可以直接调用函数D. 函数指针不能进行赋值操作9. 以下关于位运算的说法中,错误的是()A. 位运算的操作数必须是整数类型B. 位运算的优先级高于算术运算C. 位运算的结果是一个整数D. 位运算可以用于实现快速的乘除运算10. 以下关于预处理器的说法中,正确的是()A. 预处理器是在编译阶段之前执行的B. 预处理器可以用于定义宏和条件编译C. 预处理器可以用于包含头文件D. 以上都对二、填空题(每空1分,共10分)1. 在C语言中,字符串是以_____结尾的字符数组。

linux c语言编程训练题

linux c语言编程训练题

linux c语言编程训练题含解答共5道下面是一些简单的Linux C 语言编程训练题,每个题目都包含了简短的解答。

请注意,这些问题旨在测试基本的C 语言编程知识和Linux 系统编程概念。

1. 打印文件内容编写一个程序,接受一个文件名作为命令行参数,并打印文件的内容到终端。

```c#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {if (argc != 2) {fprintf(stderr, "Usage: %s <filename>\n", argv[0]);exit(EXIT_FAILURE);}FILE *file = fopen(argv[1], "r");if (file == NULL) {perror("Error opening file");exit(EXIT_FAILURE);}int c;while ((c = fgetc(file)) != EOF) {putchar(c);}fclose(file);return 0;}```2. 计算文件行数编写一个程序,接受一个文件名作为命令行参数,并统计文件的行数。

```c#include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) {if (argc != 2) {fprintf(stderr, "Usage: %s <filename>\n", argv[0]);exit(EXIT_FAILURE);}FILE *file = fopen(argv[1], "r");if (file == NULL) {perror("Error opening file");exit(EXIT_FAILURE);}int lines = 0;int c;while ((c = fgetc(file)) != EOF) {if (c == '\n') {lines++;}}printf("Number of lines: %d\n", lines);fclose(file);return 0;}```3. 逆序输出字符串编写一个程序,接受一个字符串作为命令行参数,并逆序输出该字符串。

c语言期末测试题(附答案)

c语言期末测试题(附答案)

c语⾔期末测试题(附答案).课程代码:A100002座位号:《计算机技术基础(C语⾔)》试卷A 姓名: 学号: 专业:学院: 班级:20 年⽉⽇第⼀部分选择题(共30 分)⼀、单项选择题(本⼤题共15 ⼩题,每题只有⼀个正确答案,答对⼀题得 2 分,共30 分)1、以下关于C语⾔标识符的描述中,正确的是【】。

A)标识符可以由汉字组成B)标识符只能以字母开头C)关键字可以作为⽤户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输⼊数据,正确的输⼊是【】。

int i,j,k;scanf(“%d,%3d%d”,&i,&j,&k);printf(“%d,%d,%d\n”,i,j,k);A)12345678 B)123,456,78 C)123,45678 D)123,*456783、判断char类型的变量c1是否为数字字符的正确表达式为【】。

A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’)C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’)4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。

A)’a’&&’b’ B)a<=b C)((a>b)||(b5、已知:int a[2][3]; 则对数组元素的⾮法引⽤是【】A. *(a[0]+2)B. a[1][3] C . a[1][0] D. *(*(a+1)+2)6、在循环语句的循环体中执⾏break语句,其作⽤是【】。

A)跳出该循环体,提前结束循环B)继续执⾏break语句之后的循环体各语句C)结束本次循环,进⾏下次循环D)终⽌程序运⾏7、执⾏语句for(i=10;i>0;i--);后,变量i的值为【】。

经典C语言测试题(众多知名企业用作招聘笔试题)

经典C语言测试题(众多知名企业用作招聘笔试题)

一个很牛的人出的被众多知名IT 企业用作面试题的看似很简单C 语言测试题 C++/C 试题本试题仅用于考查C++/C 程序员的基本编程技能。

内容限于C++/C 常用语法,不涉及数据结构、算法以及深奥的语法。

考试成绩能反映出考生的编程质量以及对C++/C 的理解程度,但不能反映考生的智力和软件开发能力。

笔试时间90分钟。

请考生认真答题,切勿轻视。

一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。

(10分)提示:这里“零值”可以是0, 0.0 , FALSE 或者“空指针”。

例如 int 变量 n 与“零值”比较的 if 语句为: if ( n == 0 ) if ( n != 0 ) 以此类推。

请写出 BOOL flag 与“零值”比较的 if 语句:请写出 float x 与“零值”比较的 if 语句:请写出 char *p 与“零值”比较的 if 语句:二、以下为Windows NT 下的32位C++程序,请计算sizeof 的值(10分) void Func ( char str[100]) { 请计算sizeof( str ) =} char str[] = “Hello” ;char *p = str ; int n = 10; 请计算sizeof (str ) = sizeof ( p ) = sizeof ( n ) =void *p = malloc( 100 ); 请计算sizeof ( p ) =三、简答题(25分)1、头文件中的ifndef/define/endif 干什么用?2、#include <filename.h> 和#include “filename.h” 有什么区别?3、const 有什么用途?(请至少说明两种)4、在C++ 程序中调用被C编译器编译后的函数,为什么要加extern “C”声明?5、请简述以下两个for循环的优缺点//第一个f o r(i=0;i<N;i++) {i f(c o n d i t i o n)D o S o m e t h i n g();e l s eD o O t h e r t h i n g(); }//第二个i f(c o n d i t i o n){f o r(i=0;i<N;i++)D o S o m e t h i n g();}e l s e{f o r(i=0;i<N;i++)D o O t h e r t h i n g(); }优点:程序简洁缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

C语言测试题2

C语言测试题2
16、在C语言中,下列对于字符数组的定义与赋值正确的是().(选择二项)
A、char name[4]="ACCP";B、char name[4]={'A','C','C','P'};
C、char name[]="ACCP";D、char name={'A','C','C','P'};
17、有如下一组数据:25,15,5,10,51为了把该组织数据按升序排序,如果采用冒泡排序法,需要比较()次(选择一项)
2、定义函数fun,接收用户输入的10个数字,筛选出其中的奇数和偶数,分别用数组存放,将奇数数组按从小到大排序后输出,将偶数数组按从大到小排序后输出
如:输入45 89 52 13 66 102 99 11 73 100
分别放入数组a[]:45 89 13 99 11 73
b[]:52 66 102 100
{
switch(n%3)
{
case 2:
putchar('2');
case 1:
putchar('i');
break;
case 0:
putchar('H');
}
n++;
}
}
A)Hi2Hi2HiB)Hi2C)Hi2iHi2iD)Hi2iHi2iHi
13、已知下列C语言代码的输出结果是2008年是闰年,已知闰年的判定规则是:能被4整除但不能被100整除的年份,或能被400整除的年份。请问在空白处可以填写的代码是()(选择一项)
18、A、10 B、15 C、9 D、11

C语言练习测试题(带参考答案)-绝对经典题目不看后悔

C语言练习测试题(带参考答案)-绝对经典题目不看后悔

1单选题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A)程序中第一条可执行语句???B)程序中第一个函数???C)程序中的main函数?????????D)包含文件中的第一个函数3、以下说法中正确的是(C)。

选项3)6.下列C选项A D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%xB)a+bC)a123D)123选项A中的“%”,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print_3ddb8aBcB、I\amone_halfstart$it3paiC、str_1CpppowwhileD、PxqMy->bookline#His.age选项B中的“\”,”$”,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

A、整型、实型、逻辑型B、整型、实型、逻辑型、字符型C、整型、字符型、逻辑型D、整型、实型、字符型10.在C语言程序中,表达式5%2的结果是C。

A)2.5B)2 C)1D)3详见教材P52~53.%为求余运算符,该运算符只能对整型数据进行运算。

且符号与被模数相同。

5%2=1;5%(-2)=1;(-5)%2=-1;(-5)%(-2)=-1;/为求商运算符,该运算符能够对整型、字符、浮点等类型的数据进行运算,5/2=211.如果inta=3,b=4;则条件表达式"a<b?a:b"的值是__A__。

详见教材表达式1若表达式若表达式此题中的a为3,b为14.下面(D)14~16详见教材(1(2型。

选项A,11与3为两个整数,11/3结果的数据类型也应为整数,因此将3.666666的小数部分全部舍掉,仅保留整数,因此11/3=3.选项B,11.0为实数,3为整数,因此首先要统一数据类型,将整型数据3转换为3.0,转换后数据类型统一为实型数据,选项B变为11.0/3.0,结果的数据类型也应为实型数据,因此选项B11.0/3=3.666666选项C,先将整数11强制类型转换,转换为实型11.0,因此选项C变为11.0/3,其后计算过程、结果与选项B 同选项D,首先计算11.0/3,其计算过程、结果与选项B同,得到3.666666;再计算3.666666+0.5=4.166666,最后将4.166666强制类型转换为整型,即将其小数部分全部舍掉,结果为415.设整型变量a=2,则执行下列语句后,浮点型变量b的值不为0.5的是(B)A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)16.若“intn;floatf=13.8;”,则执行“n=(int)f%3”后,n的值是(A)A.1B.4C.4.333333D.4.6“(int)f“表示将f中的值强制类型转换为整型,即将13.8的小数部分舍掉,转换为13;然后计算13%3,结果为1,再将结果赋给变量n,因此n的值为117.以下对一维数组a的正确说明是:DA)chara(10);B)inta[];C)intk=5,a[k];D)chara[3]={‘a’,’b’,’c’};详见教材P143~144,一维数组的定义、初始化类型符数组名[常量表达式]类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;常量表达式是指数组的长度(数组中包含元素的个数)选项B,详见教材选项A19.在C详见教材数组名[下标inta[10]表示定义了一个包含10个整型数据的数组a,数组元素的逻辑地址下标范围为0~9,即a[0]表示组中第1个元素;a[1]表示组中第2个元素;a[2]表示组中第3个元素;......;a[9]表示组中第10个元素.选项A,超过了数组a的逻辑地址下标范围;选项B,逻辑地址下标只能为整数选项C,逻辑地址下标只能放在[]中21.若有以下数组说明,则i=10;a[a[i]]元素数值是(C)。

  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) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。

相关文档
最新文档