c语言试题及答案

合集下载

c语言难度高的试题及答案

c语言难度高的试题及答案

c语言难度高的试题及答案C语言难度高的试题及答案1. 问题:编写一个C语言程序,实现一个简单的文本编辑器,要求能够读取文本文件,允许用户在指定位置插入、删除、替换字符,并能够保存修改后的文件。

答案:```c#include <stdio.h>#include <stdlib.h>#include <string.h>#define MAX_SIZE 1024void insert(char *str, int pos, char c) {memmove(str + pos + 1, str + pos, strlen(str + pos));str[pos] = c;}void delete(char *str, int pos) {memmove(str + pos, str + pos + 1, strlen(str + pos + 1) + 1);}void replace(char *str, int pos, char c) {str[pos] = c;}void saveToFile(const char *filename, const char *str) { FILE *file = fopen(filename, "w");if (file) {fputs(str, file);fclose(file);} else {printf("File could not be opened.\n");}}int main() {char text[MAX_SIZE] = "Hello, World!";printf("Original text: %s\n", text);// Example operationsinsert(text, 7, 'a');printf("After insert: %s\n", text);delete(text, 5);printf("After delete: %s\n", text);replace(text, 0, 'J');printf("After replace: %s\n", text);saveToFile("edited.txt", text);printf("Text saved to edited.txt\n");return 0;}```2. 问题:设计一个C语言程序,实现一个简单的计算器,支持加、减、乘、除四种运算,并能够处理除以零的情况。

c语言期末试题及答案及详解

c语言期末试题及答案及详解

c语言期末试题及答案及详解一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的关键字?A. defineB. caseC. functionD. include答案:B2. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 若有以下代码:```cint a = 5, b = 10;a = a + b;b = a - b;a = a - b;```执行后变量a的值是:A. 5B. 10C. 15D. 0答案:B4. 下列关于指针的描述,错误的是:A. 指针可以指向一个变量B. 指针可以指向一个数组C. 指针可以指向一个函数D. 指针不可以指向一个指针答案:D5. 在C语言中,以下哪个函数用于将字符串从源字符串复制到目标字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A6. 下列哪个选项是C语言中合法的数组声明?A. int arr[5] = {0, 1, 2, 3, 4};B. int arr[] = {0, 1, 2, 3, 4};C. int arr[5] = {0, 1, 2};D. int arr[] = {0, 1, 2, 3};答案:B7. C语言中,以下哪个运算符用于执行按位与操作?A. &&B. ||C. &D. &&答案:C8. 下列关于函数的描述,正确的是:A. C语言中的函数可以没有返回值B. C语言中的函数可以返回多个值C. C语言中的函数可以重载D. C语言中的函数可以嵌套定义答案:A9. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopenB. fcloseC. fgetcD. All of the above答案:D10. 下列关于C语言中循环的描述,错误的是:A. for循环可以嵌套使用B. while循环可以和do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以跳出循环体答案:B二、填空题(每题2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。

C语言试题(部分有答案)

C语言试题(部分有答案)

选择题1.1.一个C程序的执行是从()A.本程序的main函数开始,到main函数结束。

B.本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序文件的第一个函数开始,到本程序main函数结束1.2.以下叙述正确的是()A.在C语言中,main函数必须位于程序的最前面。

B.C语言的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C语言进行编译的过程中,可发现注释中的拼写错误1.3.C语言规定:在一个源程序中,main函数的位置()A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后2.2.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是()A.7 B.8 C.6 D.22.3.若有说明语句:char c=‟\66‟ ; 则说明c ()A.包括1个字符B.包括2字符C.包括3字符D.一个不合法的表达式,c的值不确定2.4.设变量a 是int,f是float, i是double,则表达式10+‟a‟+i*f值的数据类型为()A.int B.float C.double D.不确定3.1.已知ch是字符变量,下面不正确的赋值语句是()A.ch=‟a+b‟B.ch=‟\0‟C.ch=‟7‟+‟8‟D.ch=5+93.2.设x、y均为float型变量,则以下不合法的赋值语句是()A.++x B.y=(x%2)/10 C.x*=y+8 D.x=y=04.1.逻辑运算符两侧运算对象的数据类型()A.只能是0或1 B.只能是0或非0整数C.只能是整型或字符型数据D.可以是任何类型数据4.2.判断char型变量ch是否为大写字母的正确表达式是()A.‟A‟<=ch<=‟Z‟B.(ch>=‟A‟)&(ch<=‟Z‟)C.(ch>=‟A‟)&&(ch<=‟Z‟) D.(…A‟<=ch)AND(…Z‟>=ch)4.3.已知x=43,ch=‟A‟,y=0;则表达式(x>=y&&ch<‟B‟&&!y)的值是()A.0 B.语法错C.1 D.‟假‟4.4.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()If(x>y)z=x;x=y;y=zA.x=10,y=20,z=30 B.x=20,y=30,z=30C.x=20,y=30,z=10 D.x=20,y=30,z=204.5.以下程序的运行结果是()main(){int m=5;if (m++>5) printf(“%d”,m);else printf(“%d”,m--);}A.4 B.5 C.6 D.74.6.以下程序的运行结果是()main(){ int k=4,a=3,b=2,c=1;printf(“%d”,k<a?k:c<b?c:a);}A.4 B.3 C.2 D.15.1.设有程序段int k=10;while (k=0) k=k-1;则下面描述中正确的是A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.2.语句while(! E);中的表达式!E等价于()A.E= =0 B.E ! = 1 C.E ! = 0 D.E= =15.3.下面程序段的运行结果是()int n=0;while(n++<=2); printf(“%d”,n);A.2 B.3 C.4 D.有语法错5.4.以下程序段()x=-1;do{x=x*x}while(! x)A.死循环B.循环执行二次C.循环执行一次D.有语法错误5.5.以下不是无限循环的语句是()A.for(y=0,x=1;x>y++y;x=i++) i=x; B. for( ; ; x++=i );C.while(1){x++;} D.for(i=10; ;i--)sum+=i5.6.执行语句for(i=1;i++<4; );后变量i的值是()A.3 B.4 C.5 D.不确定6.1.在C语言中,引用数组元素时,其下标的数据类型允许是()A.整型常量B.整型表达式C.A或B D.任何类型6.2.若有说明:int a[][4]={0,0};则下面不正确的叙述是()A. 数组a的每个元素都可得到初值0B. 二维数组a的第一维大小为1C. 因为二维数组a中第二维大小的值除以初值个数的商为1,故数组a的行数为1D. 只有元素a[0][0]和a[0][1]可得到初值0,其余元素均得不到初值06.3.若二维数组a有m列,则在a[i][j]前的元素个数为()A. j*m+iB. i*m+jC. i*m+j-1D. i*m+j+16.4.下面程序的运行结果是()main(){ int a[6], i ;For (i=1; i<6; i++){ a[i] = 9 * (I – 2 + 4 * ( i > 3)) % 5;Printf( “%2d”, a[i] );}}A. -4 0 4 0 4B. -4 0 4 0 3C. -4 0 4 4 3D. -4 0 4 4 06.5 下面程序段的运行结果是()char c[5] = {…a‟, …b‟, …\0‟, …c‟, …\0‟};printf(“%s”, c);A. …a‟‟ b‟B. abC. ab cD. ab6.6 下面程序段的运行结果是()char a[7] = “abcdef”;char b[4] = “ABC”;strcpy(a, b);printf(“%c”, a[5]);A. 空格B. \0C. eD. f6.7 有下面程度段char a[3], b[]= “China”;a = b;printf(“%s”, a);则()A.运行后将输出China B.运行后将输出ChC.运行后将输出Chi D.编译出错6.8 下面程序的功能是将字符串s中所有的字符c删除。

C语言试题库(含答案)

C语言试题库(含答案)
C、Print f("%c\n",class[2].name[l]);
D、print f("%c\n",class[2].name[0]);
标准答案:D
【5】设单精度变量f,g的值均为5.0,则下面的表达式中,使f为10.0的表达式是。
A、f+=g
B、f-=g+5
C、f*=g-5
D、f/=g*5
标准答案:A
if(ch=='/')w=a/b;
B、B)if(ch=='*')w=a*b;
else if(ch=='/')w=a/b;
if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
C、if(ch=='+')w=a+b;
else if(ch=='-')w=a-b;
if(ch=='*')w=a*b;
A、15
B、10
C、25
D、20
标准答案:A
【15】程序段的基本结构中,不包含()。
A、函数结构
B、循环结构
C、顺序结构
D、分支结构
标准答案:A
【1】执行语句scanf("%d,%d",&m,&n);使m和n的值分别为1和2,正确输入是。
A、1
B、2
C、1,2
D、12
标准答案:c
【3】若用数组名作为函数调用的实参,传递给形参的是()。
#include<stdio.h>
main()
{int i=1;

C语言试题及答案

C语言试题及答案

第1章C语言概述习题1. 单项选择题(1) C 语言是在 B 语言的基础上产生的。

A. 回车符B. 冒号C. 逗号D. 分号(2) 在 C 语言中,每个语句必须以 D 结束。

A. 回车符B. 冒号C. 逗号D. 分号(3) 标识符和关键字间,要用 C 隔开。

A. 回车符B. 冒号C. 空格D. 分号(4) 用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( B )。

A. 生成可执行目标文件B. 生成目标文件C. 输出运行结果D.自动保存源文件(5) 下列说法中正确的是( B )。

A. 由于 C 源程序是高级语言程序,因此一定要在 TC 软件中输入B. 由 C 源程序是字符流组成,因此可以作为文本文件在任何文本编辑的软件中输入C. 由于C 程序是高级语言程序,因此输入后即可执行D. 由于 C 程序是高级语言程序,因此它由命令组成(6) 下列说法中正确的是( A )。

A. C 语言程序由主函数和 0 个或多个函数组成B. C 语言程序由主程序和子程序组成C. C 语言程序由子程序组成D. C 语言程序由过程组成(7) 下列说法中错误的是( D )。

A. 主函数可以分为两个部分:主函数说明部分和主函数体B. 主函数可以调用任何非主函数的其他函数C. 任何非主函数可以调用其他任何非主函数D. 程序可以从任何非主函数开始执行2. 填空题(1) C 语言只有 37 个关键字和 9 种控制语句。

(2) C 语言是一种“中级语言”,既具有高级语言的特点又具有低级语言的特点;既适合于开发系统软件又适合于编写应用程序。

(3) 每个源程序有且只有一个主函数,系统总是从该函数开始执行C语言程序。

(4) 在 C 语言程序中允许出现的字符集是 ASCII码字符集。

(5) C 语言的程序中有特殊含义的英语单词称为保留字。

(6) C 语言标识符的长度是前 8 位有效。

(7) C 语言中,标识符的定义规则是以字母或下划线为开头。

C语言试题和答案大全

C语言试题和答案大全

模块1 C语言基础知识1. 选择题(1)C语言中运算对象必须是整型的运算符是(B )。

A. %=B. /C. =D. <=(2)以下所列的C语言常数中,错误的是(B )。

A. 0xFFB. 1.2E0.5C. 2LD. -.67(3)以下选项中能作为用户标识符的是( C )。

A. voidB. 7_9C. _3_D. Dr.Tom(4)以下所列的C语言字符常量中,合法的是( B )。

A. ”B”B. ’\n’C. ’中国’D. d(5)以下选项中正确的定义语句是( D )。

A. int a:b;B. int ,a,b;C. int a+b=6;D. int a=6,b;(6)以下关于long、int、short型数据占用内存大小的叙述中正确的是( D )。

A. 均占4个字节B. 根据数据的大小来决定所占内存的字节数C. 由用户自己定义D. 由C语言编译系统决定(7)若有定义语句:int x=10;,则表达式x-=x+x的值为( B )。

A. -20B. -10C. 0D. 10(8)表达式((a=3*5,a+4),a+5)的值是( A )。

A. 20B. 29C. 60D. 90(9)若有定义语句:int a=3,b=4,c=5;,则以下表达式中值为0的是( D )。

A. a&&bB. a<=bC. a||b+c&&b-cD. !((a<b)&&c||1)(10)设有以下定义:int i;char c;float f;,以下结果为整型的表达式是( B )。

A. i+fB. i*cC. c+fD. i+c+f2. 填空题(1)设有int n=12;,则表达式(n++*1/3)的值是 4 。

(2)定义以下变量:char c;int x;float y;double z;,则表达式c*x+y-z,所求得的数据类型为double 。

(3)设变量a和b已正确赋初值,请写出a/=a+b等价的赋值表达式a=a/(a+b) 。

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案

c语言试卷集(10套)-试题及答案C语言试卷集(10套)-试题及答案试卷一一、选择题(每题2分,共20分)1. C语言中,用于表示逻辑“真”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:B2. 下列哪个选项是C语言中的合法变量名?()A. 2variableB. variable2C. variable_2D. variable!答案:C3. C语言中,用于定义一个整型数组的语句是()。

A. int array[10];B. int [10] array;C. int 10 array;D. int array=10;答案:A4. 下列哪个选项是C语言中的合法字符串常量?()A. "Hello"B. 'Hello'C. "HelloD. Hello答案:A5. C语言中,用于表示逻辑“假”的值是()。

A. 0B. 1C. -1D. 任意非零值答案:A6. 下列哪个选项是C语言中的合法浮点数常量?()A. 3.14B. 314.C. .314D. 3.14E答案:A7. C语言中,用于定义一个整型变量的语句是()。

A. int x;B. var x;C. x int;D. int = x;答案:A8. 下列哪个选项是C语言中的合法字符常量?()A. 'A'B. "A"C. 'AB'D. "AB"答案:A9. C语言中,用于定义一个字符数组的语句是()。

A. char array[10];B. char [10] array;C. char 10 array;D. char array=10;答案:A10. C语言中,用于表示字符常量的是()。

A. 'A'B. "A"C. AD. "A"答案:A二、填空题(每题3分,共15分)1. C语言中,用于定义一个整型变量并初始化为0的语句是()。

c语言试题及答案大全

c语言试题及答案大全

c语言试题及答案大全一、选择题1. 下列关于C语言的说法中,正确的是:A. C语言是一种高级编程语言。

B. C语言可以被编译成机器语言执行。

C. C语言的语法和C++完全相同。

D. C语言不支持面向对象的编程。

答案:B. C语言可以被编译成机器语言执行。

2. C语言中,以下哪个是合法的标识符?A. 123abcB. abc_123C. intD. function()答案:B. abc_1233. 在C语言中,以下哪种循环结构是先判断条件后执行循环体?A. for循环B. while循环C. do-while循环D. switch语句答案:C. do-while循环二、编程题1. 编写一个C程序,计算并输出1到n之间所有整数的和。

其中,n由用户输入。

答案:#include <stdio.h>int main() {int n;int sum = 0;printf("请输入一个整数n:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d之间所有整数的和为%d\n", n, sum);return 0;}2. 编写一个C程序,判断一个整数是否为素数。

素数是指除了1和自身外,无法被其他整数整除的整数。

答案:#include <stdio.h>#include <stdbool.h>bool is_prime(int num) {if (num <= 1) {return false;}for (int i = 2; i * i <= num; i++) {if (num % i == 0) {return false;}}return true;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (is_prime(num)) {printf("%d是素数\n", num);} else {printf("%d不是素数\n", num);}return 0;}三、应用题1. 假设有一个班级的学生信息如下:学号姓名年龄性别101 张三 18 男102 李四 17 女103 王五 16 男请根据上述学生信息,编写一个C程序,输出学生的平均年龄。

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

c语言试题及答案
Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998
1、以下正确的说法是(B)
(A)用户若需要调用标准库函数,调用前必须重新定义
(B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义
(C)系统根本不允许用户重新定义标准库函数
(D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
2、以下正确的函数声明形式是(A)
(A)doublefun(intx,inty)
(B)doublefun(intx;inty)
(C)doublefun(intx,inty);
(D)doublefun(intx,y);
3、以下正确的函数形式是(D)
(A)doublefun(intx,inty){z=x+y;returnz;}
(B)fun(intx,y){intz;returnz;}
(C)fun(x,y){intx,y;doublez;z=x+y;returnz;}
(D)doublefun(intx,inty){doublez;z=x+y;returnz;}
4、以下正确的说法是(A )
在C语言中
(A)实参和与其对应的形参各占用独立的存储单元
(B)实参和与其对应的形参共占用一个存储单元
(C)只有当实参和与其对应的形参同名时才共占用存储单元
(D)形参是虚拟的,不占用存储单元
5、若调用一个函数,且此函数中没有return语句,则正确的说法是(A)
该函数
(A)没有返回值
(B)返回若干个系统默认值
(C)能返回一个用户所希望的函数值
(D)返回一个不确定的值
6、以下不正确的说法是(B)
C语言规定
(A)实参可以是常量、变量和表达式
(B)形参可以是常量、变量和表达式
(C)实参可以为任意类型
(D)形参应与其对应的实参类型一致
7、以下正确的说法是(C)
(A)定义函数时,形参的类型说明可以放在函数体内
(B)return后边的值不能为表达式
(C)如果函数值的类型与返回值类型不一致,以函数值类型为准
(D)如果形参与实参的类型不一致,以实参类型为准
8、C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是(B)
(A)地址传递
(B)单向值传递
(C)由实参传给形参,再由形参传回给实参
(D)由用户指定传递方式
9、以下程序有语法性错误,有关错误原因的正确说法是(C)
voidmain()
{
intG=5,k;
voidprt_char();
......
k=prt_char(G);
......
}
(A)语句voidprt_char();有错,它是函数调用语句,不能用void说明
(B)变量名不能使用大写字母
(C)函数说明和函数调用之间有矛盾
(D)函数名不能使用下划线
10、C语言允许函数值类型缺省定义,此时该函数值隐含的类型是(B)
(A)float型
(B)int型
(C)long型
(D)double型
11、C语言规定,函数返回值的类型是由(D)
(A)return语句中的表达式类型所决定
(B)调用该函数时的主调函数类型所决定
(C)调用该函数时系统临时决定
(D)在定义该函数时所指定的函数类型所决定
12、下面函数调用语句含有实参的个数为(B)
func((exp1,exp2),(exp3,exp4,exp5));
(A)1
(B)2
(C)4
(D)5
13、以下错误的描述是(D)
函数调用可以
(A)出现在执行语句中
(B)出现在一个表达式中
(C)做为一个函数的实参
(D)做为一个函数的形参
14、以下程序的功能是计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,请选择填空。

①(B)②(C) #include<>
#include<>
floatf(float,float);
voidmain()
{
floatx,y,z,sum;
scanf("%f%f%f",&x,&y,&z);
sum=f(①)+f(②);
printf("sum=%f\n",sum);
}
floatf(floata,floatb)
{
floatvalue;
value=a/b;
return(value);
}
①(A)x-y,x+y
(B)x+y,x-y
(C)z+y,z-y
(D)z-y,z+y
②(A)x-y,x+y
(B)x+y,x-y
(C)z+y,z-y
(D)z-y,z+y
15、以下正确的描述是(B)
在C语言中
(A)函数的定义可以嵌套,但函数的调用不可以嵌套
(B)函数的定义不可以嵌套,但函数的调用可以嵌套
(C)函数的定义和函数的调用均不可以嵌套
(D)函数的定义和函数的调用均可以嵌套
16、以下程序是选出能被3整除且至少有一位是5的两位数,打印出所有这样的数及其个数。

请选择填空。

①(B)②(A)
sub(intk,intn)
{
inta1,a2;
a2=①;
a1=k-②;
if((K%3==0&&a2==5)||(k%3==0&&a1==5))
{
printf("%d",k);
n++;
returnn;
}
elsereturn-1;
}
voidmain()
{
intn=0,k,m;
for(k=10;k<=99;k++)
{
m=sub(k,n);
if(m!=-1)n=m;
}
printf("\nn=%d",n);
}
①(A)k*10
(B)k%10
(C)k/10
(D)k*10%10
②(A)a2*10
(B)a2
(C)a2/10
(D)a2%10
二、填空题
17、C语言规定,可执行程序的开始执行点是___main函数_____。

18、在C语言中,一个函数一般由两个部分组成,他们是__函数名______和___函数体_____。

19、若输入的值是-125,以下程序的运行结果是_-
125_=5*5*5______。

#include<>
#include<>
voidfun(intn)
{
intk,r;
for(k=2;k<=sqrt(n);k++)
{
r=n%k;
while(r==0)
{
printf("%d",k);
n=n/k;
if(n>1)printf("*");
r=n%k;
}
}
if(n!=1)printf("%d\n",n);
}
voidmain()
{
intn;
scanf("%d",&n);
printf("%d=",n);
if(n<0)printf("-");
n=fabs(n);
fun(n);
}
20、下面add函数的功能是求两个参数的和,并将和值返回调用函数。

函数中错误的部分是
__voidadd(floata,floatb)______;改正后为
___floatadd(floata,floatb)_____。

voidadd(floata,floatb)
{
floatc;
c=a+b;
returnc;
}
21、以下程序的运行结果是
__i=7,j=6,x=7i=2,j=7,x=5______。

voidfun(inti,intj)
{
intx=7;
pirntf("i=%d;j=%d;x=%d\n",i,j,x);
}
voidmain()
{
inti=2,x=5,j=7;
fun(j,6);
printf("i=%d;j=%d;x=%d\n",i,j,x);
}
22、以下程序的运行结果是___111_____。

voidincrement()
{
intx=0;
x+=1;
printf("%d",x);
}
voidmain()
{
increment();
increment();
increment();
}
23、以下程序的运行结果是___2_____。

max(intx,inty)
{
intz;
z=(x>y)x:y;
return(z);
}
voidmain()
{
inta=1,b=2,c;
c=max(a,b);
printf("maxis%d\n",c);
}。

相关文档
最新文档