C语言样题

合集下载

C语言100练习题

C语言100练习题

C语言百道练习题一、填空题1.C源程序的基本单位是【函数】。

2.一个C源程序至少应该包含一个【main函数】。

3.在一个C源程序中,注释用的分界符是【//】或【/* */】。

4.在C语言中,标准输入操作的库函数是由【scanf()】完成的,标准输出操作的库函数是由【printf()】完成的。

5.在C语言中,标识符只能由【字母】、【数字】和【下划线】组成,且首字符必须是【字母或下划线】。

6.x为double类型,代数式的C语言表达式是【sqrt(pow(sin(x),2.5))】。

7.数学中一元二次议程的求根公式的C语言表达式为(-b+sqrt(b*b-4*a*c) )/(2*a) 或(-b-sqrt(b*b-4*a*c) )/(2*a) 。

8.梯形的面积公式的C语言表达式为 1.0/2*(a+b)*h 。

9.已知:char a=' a',b=' b',c=' c',i;(已知a的ASCII码值为97)则表达式i=a+b+c的值为294 。

10.C语言中,指针运算符有* 和& 两个。

11.已知int a=12,n=5;则:表达式运算后a和n的值各为0,0 。

a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a12.复合语句是用一对{ } 界定的语句块。

13.一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命令:#include <stdio.h> 。

14.C语言提供三种逻辑运算符,按优先级高低它们分别是! ,&& ,|| 。

15. 将条件“y能被4整除但不能被100整除,或y能被400整除”写成逻辑表达式(y%4==0&&y%100!=0) ||(y%400==0) 。

16. 已知A=7.5,B=2,C=3.6,表达式A>B && C>A || A<B && !C>B的值是F/假。

c语言真题20套

c语言真题20套

第一套下列正确的标识符是(C ).A、a+bB、6aC、_doD、%y执行以下程序段后,输出结果和a的值是(B)。

int a=10; printf("%d",a++);A、11 和10B、10 和11C、11 和11D、10 和10以下不正确的if语句形式是(B)。

A、if(x<y) {x++;y++;}B、if(x!=y) scanf("%d",&x) else scanf("%d",&y);C、if(x>y&&x!=y);D、if(x==y) x+=y;int a=3,b=2,c=1; if(a>b && b>c)a=b; else a=c;则a的值为(C)。

A、1B、0C、2D、3对for(表达式1; ;表达式3)可以理解为(C ).A、for(表达式1;表达式3;表达式3)B、for(表达式1;表达式1;表达式3)C、for(表达式1;1;表达式3)D、for(表达式1;0;表达式3)运行结果是" 11 12"的程序段是:请在A处填写正确内容(B )。

for(i=1;i<=2;i++) ___A___A、for(j=1;j<=2;j++)printf("%3d",10*i+j);break;B、{for(j=1;j<=2;j++)printf("%3d",10*i+j);break;}C、for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;D、{for(j=1;j<=2;j++)printf("%3d",10*i+j);continue;}static char str[10]="China";数组元素个数为(D)。

C语言样题

C语言样题

B) 只能在循环体内和 switch 语句体内使用 break 语句 C) 在循环体内使用 break 语句或 continue 语句的作用相同 D) 从多层循环嵌套中退出时 , 只能使用 goto 语句 二、填空题(每空 1 分 , 共 15 分) 1. 在一个 C 语言源程序中,注释部分两侧的分界符分别为 ________ 和 ________ 。 2. 在 C 语言源程序中,一个变量代表 ____________________ 。 3. 在 Turbo C 环 境 中 用 RUN 命 令 运 行 一 个 C 程 序 时 , 所 运 行 程 序 的 后 缀 是 ________ 。 4. C 语言的源程序必须通过 ________ 和 ________ 后,才能被计算机执行。 5. 若有定义语句: int s=6 ;则表达式 s%2+(s+1)%2 的值为 ________ 。 6. C 语言所提供的基本数据类型包括:单精度型、双精度型、 ________ 、 ________ 和枚举型。 7. 设 a 、 b 、 c 均为 int 型变量且 a=5 , b=2 , c=1 ,则表达式 a-b<c || b==c 的 值是 __________ 。 8 . 设二进制数 x 的值是 11001101 ,若想通过 x&y 运算使 x 的低 4 位不变,高 4 位清零,则 y 的二进制是 __________ 。 9 . 有如下定义: struct data { int num; Char name[10]; }data1; 将结构体变量 data1 的成员 num 赋值为 15 的语句为: __________ 。 10 . 一个变量的指针就是该变量的 __________ 。 11 .若 for 循环用以下形式表示: for( 表达式 1 ;表达式 2 ;表达式 3) 循环体语句 则执行语句 for(i=0 ; i<3 ; i++) printf( " * " ) ;时 , 上述循环形式中的表 达式 1 执行 ________ 次 , 表达式 3 执行 ________ 次。 三、判断题(先判断,后改正。每题 1 分,共 10 分) 1 .输入输出的功能并不是 C 语言本身提供的,而是 C 的库函数所提供的。 ( ) 2 .若 a 和 b 是同类型变量,在执行了语句 a=b 后, b 中的值将放入 a 中, b 中 的值将丢失。 ( ) 3 .一个函数可以返回一个函数值,函数的类型就是指函数值的类型。 ( ) 4 .若定义 int m[]={1,2,3,4,5}; 则 m[1] 的值为 2 。 ( ) 5 .函数不能嵌套定义。 ( ) 6 .如果有多个 return 语句,每个 return 后面的表达式的类型应相同。 ( ) 7 .函数可以参加四则运算。 ( ) 8 .如果在一个函数中改变了外部变量的值,那么其后引用该变量时,得到的是已被改 变的值。 ( ) 9 .指针也是有类型的,其类型就是它所指向的实体的类型。 ( ) 10 .字符串存放在字符数组中,所以字符数组与字符串必须等长。 ( ) 四、读程序,填写程序运行结果( 14 分) 1 .下面程序的运行结果是 ________ 。 ( 4 分) main() { int m,n; for(m=1;m<4;m++)

(完整版)C语言题库(带详解答案)

(完整版)C语言题库(带详解答案)

(完整版)C语⾔题库(带详解答案)⼀单项选择题1.(A)是构成C语⾔程序的基本单位。

A、函数B、过程C、⼦程序D、⼦例程2.C语⾔程序从 C开始执⾏。

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

A、C语⾔程序总是从第⼀个定义的函数开始执⾏B、在C语⾔程序中,要调⽤的函数必须在main( )函数中定义C、C语⾔程序总是从main( )函数开始执⾏D、C语⾔程序中的main( )函数必须放在程序的开始部分4.下列关于C语⾔的说法错误的是(B)。

A) C程序的⼯作过程是编辑、编译、连接、运⾏B) C语⾔不区分⼤⼩写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执⾏5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满⾜(1);选项D中的int为关键字,不满⾜(3)6.下列C语⾔⽤户标识符中合法的是( B)。

A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满⾜(2);选项C,E均为为关键字,不满⾜(3);选项D中的“-”不满⾜(1);7.下列四组选项中,正确的C语⾔标识符是(C)。

A) %x B) a+b C) a123 D) 123选项A中的“%” ,选项B中“+”不满⾜(1);选项D中的标识符以数字开头不满⾜(2)8、下列四组字符串中都可以⽤作C语⾔程序中的标识符的是(A)。

A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满⾜(1);选项C中的while 为关键字,不满⾜(3)9.C语⾔中的简单数据类型包括(D)。

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案

(完整版)C语言试卷及答案一、选择题(每题2分,共40分)1、C语言源程序的基本单位是( )A.程序行B.语句C.函数D.字符2、C语言规定:在一个源程序中,main函数的位置()。

A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后3、在下列字符列中,合法的标识符是( )A.p12&.aB.stud_100C. water$12D.88sum4、在C语言中,要求运算的数必须是整数的运算符是()A./B.!C.%D.= =5、设有语句 int a =3;则执行了语句a + = a - = a*a;后,变量a 的值是()A、3B、0C、9D、-126、设a=5,b=6,c=7,d=8,m=2,n=2,执行(m=a > b)&&(n=c>d)后n的值为()A、1B、2C、3D、47、执行下列程序时输入:1234567,程序的运行结果是()main(){int x,y;scanf(“%2d%*2c%1d”,&x,&y);printf(“%d\n”,x+y);}A.17B.46C.15D.98、下述程序的输出结果是() #includevoid main(){int x=-1,y=4;int k;k=++x<=0&&!(y--<=0);printf("%d,%d,%d",k,x,y);}A.0,0,3B.0,1,2,C.1,0,3,D.1,1,29、为了避免嵌套的if-else语句的二义性,C语言规定else总是与()组成配对关系。

A.缩排位置相同的ifB.在其之前未配对的ifC.在其之前未配对的最近的ifD.同一行上的if10、两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()main(){int x;scanf(“%d“,&x);if(x++>5)printf(“%d”,x);else printf(“%d\n”,x--);}A.7和5B.6和3C.7和4D.6和411、若变量c为char类型,能正确判断出c为小写字母的表达式是( )A. 'a'<=c<= 'z'B. (c>= 'a')||(c<= 'z')C. ('a'<=c)and ('z'>=c)D. (c>= 'a')&&(c<= 'z')12、已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是。

C语言精彩试题库(完整版)

C语言精彩试题库(完整版)

单项选择C语言试题库第一章C语言概述(1)一个C程序的执行是从_A、本程序的MAIN函数开始,到MAIN 函数结束。

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。

C、本程序的MAIN函数开始,到本程序的最后一个函数结束。

D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。

(2)____________________ 以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。

B、C程序的每行中只能写一条语句。

C、C语言本身没有输入输出语句。

D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。

(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。

B、必须在系统调用的库函数的后面C、可以在任意位置。

D、必须在最后面(4)______________________ 一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)_________________________ 以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=( i =4 , j =16 , k=3 2) A、4E、16C、3 2D、5 2(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、in elude, sea nf, caseE、if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P _ 0, doB> float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3 ae/bc,则正确的C语言表达式是A、a/b/c*e*3B、3*a*e/bcC、3*a*e/b*cD、a*e/c/b*3(5)已知各变量的类型说明如下:int k, a, b;unsin ged long w=5;double x=1.42;则以下不符合C语言语法的表达式是_A、x%(-3)B、w+=-2;C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)第三章简单C程序设计(1) putchar函数可以向终端输出一个 _____A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值(2) 若x,y均定义为int型,z定义为double型,以下合法的sca nf函数调用语句是A、scanf( “%d%lx,%le”',&x,&y,&z);B、scanf( “%2d*%d%ff,&x,&y,&z);C、scanf( “%x%*d%o,&x,&y,&z);D、scanf( “%x%o%6.2f,&x,&y,&z);⑶当输入数据的形式为:25,13,10 <回车>时,以下程序的输出结果为 ______ main (){i nt x,y,z;scanf( “ %d%d%”,&x,&y,&z);printf( “ x+y+z=%d ,x+y+z);}A、x+y+z=48B> x+y+z=35C、x+z=35D、不确定值(4) 以下能正确的定义整型变量a,b和c,并对它们赋初值为5的语句是________A、int a=b=c=5;B、int a, b, c=5;C、a=5, b=5, c=5;D、a=b=c=5;(5) 若有以下定义,则正确的赋值语句是 ______int a,b; float x;A、a=1, b=2;B、b++;C、a=b=5;D、b=i nt(x);第四章选择结构程序设计(1)能正确表示“当x的值在[1 , 10]和[200, 210]的范围为真,否则为假”的表达式是A、(x>=1)&&(x<=10)&&(x.>=200)&&(x<=210)B、(x>=1) | | (x<=10) | | (x.>=200) | | (x<=210)C、(x>=1) &&(x<=10) | | (x.>=200) &&(x<=210)D、(x>=1) | | (x<=10)&& (x.>=200) | | (x<=210)(2)以下程序的运行结果是 _#in clude “ stdio.h ”main (){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf( “ %d,%c” ,a,b);}A、6, 1B、2, 1C、6, 0D、2, 0(3)请阅读以下程序:mai n(){int a=5 , b=0 , c=0;if (a+b+c) pri ntf( n” *)* *else printf( “ $r$'$);}以上程序____ 。

c语言样题

c语言样题

c语言样题选择题1,有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应当是:A)132<回车>B)1,3,2<回车>C)a=1b=3c=2<回车>D)a=1,b=3,c=2<回车>"2,以下能正确的定义整型变量a、b和c,并为c赋初值5的语句是:(A)inta=b=c=5;(B)inta,b,c=5;(C)a=5,b=5,c=5;(D)a=b=c=5;3,已知ch是字符型变量,下面不正确的赋值语句是:(A)ch=’a+b’;(B)ch=’\0’;(C)ch=’7’+’9’;(D)ch=5+9;4,若有以下定义inta,b;floatx;则不正确的语句是:A)a=1,b=2;B)b++;C)a=b=5;D)b=intx;5,对以下说明语句的正确理解是:inta[10]={6,7,8,9,10};A)将五个初值依次赋给a[1]-a[5];B)将五个初值依次赋给a[0]-a[4];C)将五个初值依次赋给a[6]-a[10];D)因为数组的长度与初值的个数不相同,所以此语句不正确。

6,下面程序段的运行结果是:charc[]=”\t\r\n\\\0will\n”;printf(”%d”,strlen(c));A)4B)3C)5D)字符串中有非法字符,输出值不确定.7,判断字符串a和b是否相等,应当使用:A)if(a==b)B)if(!(a!=b))C)if(!strcmp(a,b))D)if(strcpy(a,b))"8,以下正确的函数首部定义形式是:A)doublefun[intx,inty]B)doublefun(intx;inty)C)doublefun(intx,y)D)doublefun(intx,inty)9,下面函数调用语句含有实参的个数为:func((exp1,exp2),(exp3,exp4,exp5));A)1B)2C)4D)510,以下有关宏替换的叙述不正确的是:A)宏替换不占用运行时间B)宏名无类型C)宏替换只是字符替换D)宏名必须用大写字母表示11,若w=1,x=2,y=3,z=4,则条件表达式w<x?w:y<z?y:z的值是:A)4B)3C)2D)112,为了避免在嵌套的条件语句IF-ELSE产生二义性,C语言规定:ELSE子句总是与___配对使用.A)缩排位置相同的IFB)其之前最近的IFC)其之后最近的IFD)同一行上的IF13,以下程序的运行结果是:main(){intm=5;if(m++>5)printf("%d\n",m);elseprintf("%d\m",m--);}A)4B)5C)6D)714,语句WHILE(!E);中的表达式!E等价于:A)E==0B)E!=0C)E!=1D)E==115,下面程序段运行结果是:intn=0;while(n++<=2);printf("%d",n);A)2B)3C)4D)有语法错误16,若有如下语句:intx=3;do{printf("%d\n",x-=2);}while(!(--x));则上面程序段输出的结果是:A)1B)1和-2C)3和0D)死循环17,执行语句for(i=1;i++<4;);后变量i的值是:A)3B)4C)5D)不定18,若二维数组a有m列,则在a[i][j]前的元素个数为:A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+119,以下正确的定义语句是:A)inta[1][4]={1,2,3,4,5};B)floatx[3][]={{1},{2},{3}};C)doubley[][3]={0};D)longb[2][3]={{1},{1,2},{1,2,3}};20,判断字符串S1是否大于字符串S2,应当使用:A)if(S1>S2)B)if(strcmp(S1,S2));C)if(strcmp(S2,S1)>0);D)if(strcmp(S1,S2)>0);改错题/*下面程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+1/2!+1/3!+1/4!+…+1/m!例如:若m=6,则应输出:1.718056。

C语言练习题(带详解答案)

C语言练习题(带详解答案)

1、编程题1.输入2个整数,求两数的平方和并输出。

#include <stdio.h>int main(void){ intt a ,b,s;printf("please input a,b:\n");scanf("%d%d”,&a,&b);s=a*a+b*b;printf("the result is %d\n",s);return 0;}2. 输入一个圆半径r,当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include <stdio.h>#define PI 3.14int main(void){ double r ,area , girth;printf("please input r:\n");scanf("%lf",&r);if (r>=0){ area =PI*r*r;girth =2*PI*r ;printf("the area is %.2f\n", area);printf("the girth is %.2f\n", girth);}elseprintf("Input error!\n");return 0;}3、已知函数y=f(x),编程实现输入一个x值,输出y值。

2x+1 (x<0)y= 0 (x=0)2x-1 (x>0)#include <stdio.h>void main(){ int x,y;scanf(“%d”,&x);if(x<0) y=2*x+1;else if(x>0) y=2*x-1;else y=0;printf(“%d”,y);}4.从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;80≤score<90,等级为B;70≤score<80,等级为C;60≤score<70,等级为D;score<60,等级为E。

c语言经典题目100题

c语言经典题目100题

1.寻找数组中的最大值和最小值2.寻找数组中的中位数3.查找数组中给定元素的索引4.反转数组5.合并两个升序数组6.移位数组7.查找两个数组的交集8.查找两个数组的并集9.查找两个数组的差集10.寻找数组中的众数11.寻找数组中的缺失元素12.寻找数组中的重复元素13.计算数组的和14.计算数组的平均值15.计算数组的方差16.计算数组的标准差17.比较两个数组是否相等18.复制数组19.排序数组20.搜索数组(线性搜索)21.搜索数组(二分搜索)22.插入元素到数组23.删除元素到数组24.更新数组中的元素25.创建动态数组26.释放动态数组27.字符串复制28.字符串连接29.字符串比较30.字符串搜索31.字符串替换32.字符串分割33.字符串反转34.字符串大小写转换35.字符串修剪36.计算字符串长度37.字符串格式化38.链表创建39.链表插入40.链表删除41.链表搜索42.链表反转43.链表排序44.链表合并45.链表复制46.链表释放47.树创建48.树插入49.树删除50.树搜索51.树反转52.树排序53.树合并54.树复制55.树释放56.堆创建57.堆插入58.堆删除59.堆搜索60.堆反转61.堆排序62.堆合并63.堆复制64.堆释放65.图创建66.图插入67.图删除68.图搜索69.图反转70.图排序71.图合并72.图复制73.图释放74.队列创建75.队列插入76.队列删除77.队列搜索78.队列反转79.队列排序80.队列合并81.队列复制82.队列释放83.栈创建84.栈插入85.栈删除86.栈搜索87.栈反转88.栈排序89.栈合并90.栈复制91.栈释放92.哈希表创建93.哈希表插入94.哈希表删除95.哈希表搜索96.哈希表反转97.哈希表排序98.哈希表合并99.哈希表复制100.哈希表释放。

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语言考试样题

一、单项选择题(共12个每个两分)1.( )是C语言程序的基本单位A. 函数B.过程C.子程序D.子例程2. 下列关于c语言用户标识符的叙述中正确的是______A.用户标识符中可以出现下划线和中划线(减号)B.用户标识符中不可以出现中划线,但可以出现下划线C.用户标识符中可以出现下划线,但不可以放在用户标识符的开头D.用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头3.选出下列标识符中不是合法的标识符的是_______。

A.2aB. _hiC. min1D.ho_in4.下列叙述正确的是________A.break语句只能用于switch语句B.在switch语句中必须使用defaultC.break语句必须与switch语句中的case配对使用D.在switch语句中,不一定使用break语句5. 下列一组初始化语句中,正确的是( )A) int a[8]={ }; B) int a[9]={0,7,0,4,8}; C) int a[5]={9,5,7,4,0,2}; D) int a[7]=7*66.关于C语言的说法错误的是()A. C程序的工作过程是编辑、编译、连接、运行B.C语言不区分大小写C.C程序的三种基本结构是顺序、选择、循环D. C语言从main函数开始执行7.以下下关于C语言中数组的描述正确的是______A.数组的大小是固定的,但可以有不同的类型的数组元素。

B.数组的大小是可变的,但所有数组元素的类型必须相同。

C.数组的大小是固定的,所有数组元素的类型必须相同。

D.数组的大小是可变的,可以有不同的类型的数组元素。

8、以下由while构成的循环执行次数是_____int i=1;While(i==1) i++:A无限次 B.语法错 C.一次也不执行 D.执行1次9.对字符串的操作,下列说明中正确的是()A、可以用赋值表达式对字符数组赋值,如char str[20];str=”china”;B、若有字符数组a和b,且a>b,则strcmp(a,b)为负数C、可用strcpy函数进行字符串的复制来完成字符数组的赋值D、字符串”aaa”在内存中占3个字节10.在C语言中,数组名代表的是( )(A) 数组中全部元素的个数(B) 数组中第一个元素的值(C) 数组中全部元素的值(D) 数组的首地址11.能正确表示a和b同时为正或同时为负的逻辑表达式是()A、(a>=0||b>=0)&&(a<0||b<0)B、(a>=0&&b>=0)&&(a<0&&b<0)C、(a+b>0)&&(a+b<=0)D、a*b>012. 以下那个函数用俩标识求某个数的平方根()A、sqrt()B、fabs()C、pow()D、exp()二、填空题:(每题2分,每题全填对得分,共24分)1.变量的命名规则:变量名只能由____________组成。

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语言基础知识测试题-全面完整

基础知识测试题一.单项选择题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."B"C.'\n'D.'\x72'10 .设char ch; 以下正确的赋值语句是:(B )A.ch='123';B.ch='\xff';C.ch='\08';D.ch="\";11 .以下使i的运算结果为4的表达式是(D )A.int i=0,j=0;(i=3,(j++)+i);B.int i=1,j=0;j=i=((i=3)*2);C.int i=0,j=1;(j==1)?(i=1):(i=3);D.int i=1,j=1;i+=j+=2;A12 .若t为double类型,表达式t=1,t+5,t++的值是(D)A.1B.6.0 CC13.设整型变量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,则条件表达式a<b?a:a<d?c:d的值为(A )A.1B.2C.3D.416 .设int n=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的二进制值是()char a=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语言考试题型及答案

c语言考试题型及答案一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个运算符用于计算两个整数的乘积?A. +B. -C. *D. /答案:C3. 下列哪个选项不是C语言的控制语句?A. ifB. forC. switchD. goto答案:D二、填空题1. 在C语言中,一个基本的数据类型是________。

答案:int2. 定义一个字符数组时,可以使用_______关键字。

答案:char3. 在C语言中,用_______关键字可以定义一个函数。

答案:void 或其他返回类型三、简答题1. 简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储具有相同类型的元素集合。

指针是一个变量,它存储了另一个变量的内存地址。

数组名在C语言中被解释为指向数组首元素的指针。

2. 描述C语言中函数的定义和调用过程。

答案:函数定义包括返回类型、函数名、参数列表和函数体。

函数调用则是在程序中使用函数名和相应的参数列表来执行函数定义的代码。

四、编程题1. 编写一个C语言程序,实现两个整数的加法,并输出结果。

```c#include <stdio.h>int add(int a, int b) {return a + b;}int main() {int num1, num2, result;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);result = add(num1, num2);printf("The sum is: %d\n", result);return 0;}```2. 编写一个C语言程序,实现字符串的复制功能。

```c#include <stdio.h>#include <string.h>void copyString(char *source, char *destination) { strcpy(destination, source);}int main() {char str1[50], str2[50];printf("Enter a string: ");fgets(str1, 50, stdin);copyString(str1, str2);printf("Copied string is: %s", str2);return 0;}```。

C语言考试题

C语言考试题

C语言考试题C语言程序设计样题一、单选题1. C程序的基本构成单位是(C )A)文件B)命令C)函数D)语句2. 在C语言中,'a'是(B )A)字符串常量B)字符常量C)变量D)函数3. 在C语言中,“a=b=c=5”属于哪种表达式?(B )A)关系B)赋值C)逻辑D)非法4. 设a、b为整型,则表达式(a=2,b=5,b++,a+b)的值是(D )A)2 B)6 C)7 D)85. 若有以下变量定义:int b=2;float a=5;则表达式“a/b”之值为( A )A)2.5 B)2 C)3 D)5/26. 若j=3,则表达式(++j)+(j++)的值为(C )A)6 B)7 C)8 D)107. 以下只能输入单个字符的函数是(C )A)printf( ) B)puts( ) C)getchar( ) D)putchar( )8. 若a的原值为4,则表达式“a*=a-=3”运算后,a的值是(D )A)13 B)4 C)3 D)19. 若a=5、b=3、c=1,则表达式“a>b>c”的值为(A )A)0 B)1 C)3 D)510. 若有代数式:以下错误的C语言表达式是(C )A)a/b/c*e*3 B)3*a*e/b/c C)3*a*e/b*c D)a*e/c/b*311. 下列能输出字符数组str中字符串的语句是(B )A)printf("%c",str[0]); B)printf("%s",str);C)printf("%s",str[]); D)putchar(str);12. 若p=&x,则下列关系表达式之值为1的是(B )A)p==x B)*p==x C)&p==x D)*x==p13. C语言中最基本的数据类型包括(B )A)整型、实型、逻辑型B)整型、实型、字符型C)整型、逻辑型、字符型D)整型、实型、字符串型14. C语言中,要求运算对象必须是整型数据的运算符是(A )A)% B)/ C)\ D)&&15. 表示数学关系“x≥y≥z”的C语言表达式是(C )A)x>=y>=z B)x>=y || y>=z C)x>=y&&y>=z D)x≥y≥z16. 以下说法中正确的是(C )A)C程序总是从文件中第一个函数开始执行B)C程序中,只有main( )函数才可以调用其他函数C)C程序总是从main( )函数开始执行D)C程序中的main( )函数必须放在程序的开头17. 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值为(A )A)2.5 B)2.75 C)3.5 D)018. 设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为(C )A)int B)float C)double D)不确定19. 有输入语句:scanf("%d,%d",&a,&b);为使变量a、b分别为5和3,从键盘输入数据的正确形式为(B )A)5 3<回车> B)5,3<回车> C)a=5 b=3<回车> D)a=5,b=3<回车>20. 定义如下变量和数组:int j;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是(C )for (j=2; j>=0; j--)printf("%2d",x[j][2-j]);A)1 5 9 B)1 4 7 C)7 5 3 D)3 6 921. 执行下面程序后,a的值是(B )#include#define SQR(x) x*xvoid main( ){int a=10,k=2,m=1;a=SQR(k+m);printf("%d\n",a);}A)10 B)5 C)2 D)122. 以下叙述不正确的是(C )A)在函数内部定义的变量是局部变量B)函数中的形式参数是局部变量C)全局变量的作用范围仅限于其所在的整个文件D)局部变量的作用范围仅限于本函数23. 设a=3,b=4,c=2,d=1,则表达式“a>b?a:c>d?c:d”的值为(C )A)4 B)3 C)2 D)124. 有以下程序段:x=-1;dox=x*x;while(!x);执行时,循环体执行的次数为(B )A)0 B)1 C)2 D)不确定25. 以下不正确的if语句形式是(C )A)if (x>y&&x!=y);B)if (x= =y) x+=y;C)if (x!=y) scanf("%d",&x)else scanf("%d",&y);D)if (x<="">26. 以下程序的输出结果是(C )#includevoid main( ){int x=2,y=-1,z=2;if (x<y)< p="">if (y<0) z=0;else z+=1;printf("%d\n",z);}A)0 B)1 C)2 D)327. 以下能正确计算1×2×3×…×10的程序段是(A )A) i=1,s=1; B) s=1;i=1;do while(i<=10){s=s*i;i++;} s=s*(++i);while(i<11);C) for(i=1,s=0;i<=10;i++) D)for(i=1,s=1;;i++)s=s*i; s=s*i;28. 若j为整型变量,则以下循环执行次数是(C )for (j=0;j= =0;)printf("%d",j--);A)无限次B)0次C)1次D)2次29. 若有说明:int a[10];则对a数组元素的正确引用是(C )A)a[3.5] B)a(8) C)a[6-5] D)a[10]30. C语言规定,变量做实参时,它和对应形参之间的数据传递方式是(B )A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式31. C中,一个float类型的数据在内存中占(C )个字节。

c语言题库(60道题)

c语言题库(60道题)

第一题:编写一个售货机(POS)计算程序,用于水果店售货员算账。

苹果每千克 3.2元,梨每千克1.96元,香蕉每千克3元,樱桃每千克24元。

某顾客购买1.5斤苹果,2斤梨,3斤香蕉,1.5斤樱桃,付给售货员100元。

要求规范输出这位顾客购买各类水果的名称,对应的重量和应付价钱,显示顾客所付款项,输出应找回的款项。

#include<stdio.h>main(){float apple=1.5,pear=2.0,banana=3.0,cherry=1.5;float cost,pay=100.0,retern;cost=3.2*apple+1.96*pear+3.0*banana+24.0*cherry;retern=pay-cost;printf("LIST\t重量:\t价钱:\n");printf("apple\t1.5\t%.2f\n",3.2*apple);printf("pear\t2.0\t%.2f\n",1.96*pear);printf("banana\t3.0\t%.2f\n",3.0*banana);printf("cherry\t1.5\t%.2f\n",24.0*cherry);printf("pay=%.2fRMB\ncost=%.2fRMB\nretern=%.2fRMB\n",pay,cost,retern);}第二题:编写一个程序,对输入的一组整数,分别统计其中正整数和负整数的个数(0作为结束标志)。

#include<stdio.h>main(){int a[]={12,1648,500,-322,41,-15,126,-45,0,45,-356},i=0,m=0,n=0;for(i=0;a[i]!=0;i++){if(a[i]<0)m++;else if(a[i]>0)n++;}printf("%d\n%d\n",m,n);}第三题:统计100-500之间各个数字之和为9的三位数,输出这些三位数。

c语言 100题

c语言 100题

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

A.函数B.变量C.子程序D.语句是不正确的转义字符。

2. C语言规定:在一个源程序中,main()函数的位置()。

A.必须在最开始B.必须在系统调用的库函数后面C.可以任意D.必须在最后3. 下列哪个选项能够正确地声明一个指向整型变量的指针?A) int *ptr;B) int ptr;C) int ptr;D) int ptr;4.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符()。

A.必须为字母B.必须为下划线C.必须为字母或下划线D.可以是字母、数字和下划线中的任意一种5. C语言中的简单数据类型有()。

A.整型、实型、逻辑型B.整型、字符型、逻辑型C.整型、实型、字符型D.整型、实型、字符型、逻辑型6. 以下选项中,不正确的整型常量是()。

A.-37B.32,758C.326D.67.以下选项中,不正确的实型常量是()。

A.123B.1e4C.3.640E-1D.0.358.以下选项中,合法的C语言赋值语句是()。

A.a=b=34B.a=34,b=34C.-i;D.m=(int)(x+y);9.设int类型的数据长度为两个字节,则unsigned int类型数据的取值范围是()。

A.0~255B.0~65535C.-32768~32767D.-256~25510.在C语言中,下列哪个函数用于将整数转换为字符串?A) itoa()B) atoi()C) to_string()D) intstr()11.以下叙述中,不正确的是()。

A.在C程序中,%是只能用于整数运算的运算符B.在C程序中,无论是整数还是实数,都能准确无误地表示C.若a是实型变量,C程序中a=20是正确的,因此实型变量允许被整型数赋值D.前缀和后缀运算符,作为表达式来说有不同的作用12.设a、b、c、d、m、n均为int型变量,且a=5,b=6,c=7,d=8,m=2,n=2,则逻辑表达式(m=a>b)&(n=c>d)运算后,n的值为()。

C语言基础练习100题(含答案)

C语言基础练习100题(含答案)

如对你有帮助,请购买下载打赏,谢谢!C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.如对你有帮助,请购买下载打赏,谢谢!A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 1220、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________. A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;如对你有帮助,请购买下载打赏,谢谢!ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 25如对你有帮助,请购买下载打赏,谢谢!38、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void main( ){ int x=1,a=0,b=0;switch(x){case 0: b++;case 1: a++;case 2: a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是__________.A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.如对你有帮助,请购买下载打赏,谢谢!#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s); A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}如对你有帮助,请购买下载打赏,谢谢!A) 6 3 B) 7 4 C) 6 2 D) 7 360、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}}该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;如对你有帮助,请购买下载打赏,谢谢!for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。

C语言经典练习题50道(附答案)

C语言经典练习题50道(附答案)

1.**打印Hello World**练习:编写一个C程序,打印"Hello,World!"到屏幕上。

#include<stdio.h>int main(){printf("Hello,World!\n");return0;}2.**计算两个整数的和**练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。

#include<stdio.h>int main(){int a=5,b=7;int sum=a+b;printf("Sum:%d\n",sum);return0;}3.**判断奇数或偶数**练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。

#include<stdio.h>int main(){int num=10;if(num%2==0){printf("%d is even.\n",num);}else{printf("%d is odd.\n",num);}return0;}4.**计算阶乘**练习:编写一个程序,计算给定整数的阶乘。

#include<stdio.h>int main(){int n=5;int factorial=1;for(int i=1;i<=n;i++){factorial*=i;}printf("Factorial of%d is%d\n",n,factorial);return0;}5.**反转字符串**练习:编写一个程序,接受一个字符串,然后反转它并打印出来。

#include<stdio.h>#include<string.h>int main(){char str[]="Hello,World!";int len=strlen(str);for(int i=len-1;i>=0;i--){printf("%c",str[i]);}printf("\n");return0;}6.**检查素数**练习:编写一个程序,判断一个整数是否为素数。

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案

(完整版)C语言考试题库及答案一、选择题1. 以下哪个选项是C语言的合法标识符?A. intB. 2abcC. voidD. a+b答案:C2. 在C语言中,下列哪个选项是正确的数据类型?A. floatB. integerC. doubleD. All of the above答案:D3. 若变量定义如下:int a = 5;,则执行语句printf("%d", a++); 后,a的值是多少?A. 4B. 5C. 6D. 无法确定答案:C4. 以下哪个函数用于动态分配内存?A. malloc()B. alloc()C. new()D. calloc()答案:A5. 在C语言中,哪个运算符用于取模(取余)?A. %B. /C. &D. |答案:A以下是判断题部分:6. C语言中的数组名可以作为指向该数组首元素的指针使用。

()答案:正确7. 在C语言中,结构体变量可以作为函数的参数传递。

()答案:正确8. 在C语言中,静态存储类别的变量在程序运行期间始终占据内存空间。

()答案:正确二、填空题9. 在C语言中,定义一个整型变量需要使用关键字______。

答案:int10. 若变量定义如下:int a = 10;,则执行语句printf("%d", a--); 后,a的值是______。

答案:911. 在C语言中,用于动态分配内存的函数是______。

答案:malloc12. 在C语言中,用于释放动态分配的内存的函数是______。

答案:free13. 在C语言中,用于清空标准输入缓冲区的函数是______。

答案:getchar()三、编程题14. 编写一个C语言程序,实现以下功能:输入一个整数,输出它的阶乘。

答案:```c#include <stdio.h>int main() {int n, i;long factorial = 1;printf("Enter an integer: ");scanf("%d", &n);if (n < 0) {printf("Factorial of a negative number doesn't exist.\n");} else {for (i = 1; i <= n; i++) {factorial = i;}printf("Factorial of %d is %ld\n", n, factorial);}return 0;}```15. 编写一个C语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。

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

I.True/False1.( F )Identifiers consist of letters and digits in any order, but must be in lowercase.2.( T )We create modular programs because they are easier to develop, correct andmodify.3.( F )All computers use twice the amount of storage for double precision than floatingpoint data type4.( F )Static variable is not created and destroyed each time the function is called, it isthe default storage class used by C.5.( T )A compound statement may be used anywhere in C program in place of a singlestatement.6.( F )In C language, all operators are binary operator which connecting tow operandsside-by-side.7.( T )The Escape Sequence is a combinations of a backslash (\) and a character that tellsthe compiles to escape from the ways these character would be normally interpreted8.( T )Extern storage class is to extend the scope of a global variable beyond its normalboundary-file. it does not cause the creation of a new variable.9.( F )After defined, the symbolic names can be used in any statement and the programcan change the value of the symbolic names.10.( F )The mistake of u sing the assignment operator”=” in place of the relationaloperator”==” results in a invalid C expressionII.Choice11.( C)For the algebraic expression 3ae/bc, which of the following C expression isinvalidA) a/b/c*e*3 B) 3*a*e/b/cC) 3*a*e/b*c D) a*e/c/b*312.(D )For the declarations: char w; int x; float y; double z; the data type of the value ofw*x+z-y isA) float B) charC) int D) double13.( C )For following declaration, which expression will not result in 3 ?int x[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, *p1 ;A) x[3] B) p1 = x +3, *p1++C) p1 = x +2, *( p1++ )D) p1 = x +2, *++p114.( A )Which one is not endless loop?A) for (y = 0, x = 1 ; x > ++y ; x = i++ ) i = x ;B) for ( ; ; x ++ = i ) ;C) while (1) {x ++;}D) for ( i =10 ; ; i--) sum += i ;15.( B )The result of the following program ismain(){ int a = -2, bdo{ b = ++a;if (!b) printf(“#”);else printf(“*”);}while(a<1)}A}#*# B} *#*C)### D) ***16.( D )Which one of the following functions is valid ?A) double fun ( int x , int y ) 缺少z的类型说明,否则返回值为整型{ z = x + y ; return z ;}B) fun ( int x , y ) 缺少形参y的类型说明{ int z ;return z ;}C) fun ( x , y ) 缺少形参的类型说明{ int x ,y ; double z ;z = x + y ; return z ;}D) double fun ( int x , int y ){ double z ;z = x + y ; return z ;}17.( D )In a source codes file of C language, if a variable can only be used by allfunctions with the file itself, the storage class of the variable isA) extern B) registerC) auto D) static18.( A )The C programming language the symbol “= =”isA) rational operator B) logical operatorC) conditional operator D) assignment operator19.( D )For the definition statement: double s = 123.5; , which one is the correct outputstatement?A) printf(“s=%d ”, s); B) printf(“s=%ld ”, s);C) printf(“s=%f ”, s); D) printf(“s=%lf ”, s);20.( C )Which of the following expressions will result in 0?A) 3%5 B) 3/5.0C) 3>5D) 3<5III.F ill in the blanks in each program to implement the purpose according to the descriptionDescription#1:The following program can accept elements of an array from the keyboard, and find the maximum element and corresponding index in the array.main(){ int x[10], *p1, *p2, k;for(k = 0; k < 10; k++) scanf("%d", x+k);for(p1 = x, p2 = x; p1-x < 10; p1++ )if(*p1 > * p2) p2 = 【21】 ;printf("MAX = %d, INDEX = %d\n", *p2,【22】);}21.A) p1B) p2[p1] C) x[p2] D) x – p122.A) p1– x B) p1 C) p2 – x D) x – p2Description#2: For each x, the program will calculate a corresponding y according to themain(){ int x, y;scanf(“%d”, &x);if(【23】 ) y = x * (x + 2);else if(【24】 ) y = 2 * x;else if(x <= -1) y = x - 1;else 【25】;if(y != -1) printf("%d", y);else printf("error");}23.A) x > 2 | | x <= 10 B) x > 2 && x <= 10C) x < 2 && x <= 10 D) x < 2 | | x >= 1024.A) x < -1 | | x >= 2 B) x > -1 | | x <= 2C) x > -1 && x <= 2D) x > -1 ^ ^ x <= 225.A) y = -1B) y = 0 C) x = 0 D) x = -1IV.(1)What is the purpose of the following program?#include<stdio.h>#define N 10main(){int t, i, j, a[N+1] ;printf(“please input 10 integers:”);for (i=1; i<=N; i++)scanf(“%d”, &a[i]);printf(“\n”);for (i=1; i<=N-1; i++){ for (j=1; j<=N-i; j++)if (a[j]<a[j+1]){t=a[j+1]; a[j+1]=a[j]; a[j]=t;} }for (i=1; i<=N; i++) printf(“%d”, a[i]);printf(“\”n);}从大到小排列数字。

(2)Read the grogram and guess the result of the program#include <stdio.h>int k = 1;char a[ ] = “IBM computer”, b[ ] = “C program”;int fuc();main(){ int p = 3;while (putchar(a[k])) k++;putchar(…\n‟);printf(“k=%d, ”, k);k=fuc(p);printf(“%d, %d\n”, p,k);printf(“%c%s\n”, a[0], &b[p]);puts(&a[3]);}int fuc(int m){int k = 0;while (putchar(b[k])) k++;printf("k=%d\n", k);k +=m; m *=k;printf("%d, %d\n", m, k);return (m+k);}OUTPUT:BM computerk=12,C program k=936, 123, 48IrogramcomputerV.Check Error in the program according to the following description and correct them, write the whole corrected program on the answer sheetA programmer wants to write a program to simulate a roll of the dice. The programmerdecides to have the program choose two pseudo-random numbers from 1 to 6 and output the two numbers. If two values are the same, the program should also output the string "That's a pair!" after printing the two values.The programmer writes the following code:#include <stdio.h>#include <stdlib.h>#include <time.h>int main(void){ int dice[2];srand(time(NULL));for (x = 0; x <= 2; x++);dice[x] = rand() % 6;printf ("You rolled a %d and a %d.\n", dice[0], dice[1]);if (dice[0] = dice[1])printf("That's a pair!\n");return 0;}The above code has 5 errors in it!What are they?没有定义xfor (x = 0; x <= 2; x++);应改为for (x = 0; x <= 2; x++)dice[x] = rand() % 6;应改为(dice[x] = rand() % 7)+1 /*超纲*/for (x = 0; x <= 2; x++);应改为x < 2if (dice[0] = dice[1])应改为==VI.Writing a programWrite a complete program that allows the user to enter a string (assumed to be less than 25 characters long). If N is the length of the string, the program should output N rows to standard output. The first row should be the string entered by the user. The second row should be the string without its last character. The third row should be the string without its last two characters. Etc. The N th and final row should be only the first letter of the string.Here is a sample run, assuming the user types “Hello World!” when prompted:Enter a string: Hello World!Hello World!Hello WorldHello WorlHello WorHello WoHello WHelloHelloHellHelHeHPretest and posttest loop;modular programs;binary operator;file;the amount of storage;continue break statement;Automatic variable;symbolic name;array name;Extern storage class;Identifiers;Escape Sequence;control string;union;compound statement;members of a structure;源代码:#include<stdio.h>#include<string.h>#define N 25main(){char a[N];int i,j;gets(a);for(i=0;i<strlen(a)-1;i++){for(j=0;j<strlen(a)-i-1;j++)printf("%c",a[j]);printf("\n");}}。

相关文档
最新文档