c语言经典选择填空题1
- 格式:docx
- 大小:47.37 KB
- 文档页数:15
选择题1.已知大写字母A的ASCII码值是65,小写字母a的ASCII码值是97,则用八进制表示的字符常量'\101'是()。
A.字符AB.字符aC.字符eD.非法的常量2.下列程序段的输出结果为()。
float k=0.8567;printf("%4.lf%%",k*100);A.85.6%B.85.6%%C.85.7%D. .8753.下面的scanf函数输入数据,使得a=10,b=15,s1='S',s2='s',x1=1.5,x2=-3.75,x3=67.8, 正确的键盘输入方法是( ).(用"[CR]"表示回车,U表示空格)main(){int a,b;float x1,x2,x3;char s1,s2;scanf("%5d%5d%c%c%f%f%*f%f",&a,&b,&s1,&s2,&x1,&x2,&x3);}A、10UUU15Ss1.5U-3.75U+1.5U67.8[CR]B、10UUU15USUs1.5U-3.75U+1.5U67.8[CR]C、10UUU15USUsU1.5U-3.75U+1.5U67.8[CR]D、10UUU15Ss1.5U-3.75U+1.5,67.8[CR]4. C语言的if语句中,用作判断的表达式为( )。
A、任意表达式B、算术表达式C、逻辑表达式D、关系表达式5.以下程序的输出结果是:( )main(){int m=5;if(m++>5) printf("%d\n",m);else printf("%d\n",m--);}A、6B、5C、7D、46.以下for循环的执行次数是 for(x=0,y=0;(y=123)&&(x<4);x++);()。
C语言练习题一一、填空题。
(每空1分,共10分)1.语句while(e==0):中的条件e==0等价于_____________;答案:!e2 printf(“%4s”,“beijing”);输出为:_____________;答案:beijing3.C语言中的字符串以字符_____________;答案:答案:\04.C语言可以处理的文件类型是_____________和_____________;答案:文本文件和二进制文件5,int(*P)[5];说明p是:_____________;答案:指向一维整形数组的指针变量6.函数直接或间接地调用自己,被称为函数的_____________;答案:递归7.若有static int x[5],x[4]的地址表示是:___________ 。
答案:&x[4]或x+48.有程序段如下:int x=l:while (x<=lO){x+=3;printf(“%d\n”,x);}则:函数printf()执行次数是____4_____ ,循环结束后X的值是___________ 。
答案:139.若有以下定义和语句,则sizeof(a)的值是_____,答案:12,而sizeof(b)的值是__。
答案:4 struct{int day;char month;int year;}a,*b;10.若有static char c[10] = “China”;执行该语句后c[1]= ___________ 。
答案:h c[5]= ___________ 。
答案:\0c[6]= ___________ 。
答案:\0 strlen(c)= ___________ 。
答案:511.若有Static char c[s]={’a’,’b’,’\0’(零),‘c’,‘d’};printf(“%s\n”,c):则输出内容为:___________ 。
答案:ab12.下面程序把从终端读人的10个整数以二进制方式写到一个名为bi.dat的新文件中。
练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
8、下列不正确的转义字符是(C)A.' \\ ' B.' \' ' C.' \19 ' D.' \0 '解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。
十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。
习题一一、选择题1.C程序的基本单位是(A)。
A.函数B.文件C.语句D.字符2.C程序中的变量(B)。
A.不用说明B.先说明后引用C.先引用后说明D.引用和说明顺序无关3.变量的说明在(B)。
A.执行语句之后B.执行语句之前C.执行语句当中D.位置无关4.C语言是一种(C)。
A.机器语言B.符号语言C.高级语言D.面向对象的语言二、填空题1.一个C程序总是从主函数开始执行。
2.结构化程序由顺序、选择、循环三种基本结构构成。
3.一个C程序只有一个名为main的主函数。
4.C程序中的每个语句以分号结束。
5.C程序中,函数由函数首部和函数体组成。
6.每个基本结构有一个入口和一个出口,没有死循环和死语句。
7.算法是计算机解决问题所依据的步骤。
习题二一、选择题1.下列数据中属于字符串常量的是( B)。
A.ABC B."ABC" C.'abc' D.'A'2.在计算机内存中,'\n'占用的字节数是( C)。
A.4 B.3 C.1 D.23.字符串"ABC"在内存中占用的字节数是( D)。
A.6 B.8 C.3 D.44.在C语言中,合法的长整型常数是( B)。
A.568701400 B.0L C.0.03546287 D.2.654e115.char型常量在内存中存放的是( A)。
A.ASCII代码值B.BCD代码值C.十进制代码值D.内码值6.下列各项中正确的标识符是( D)。
A.?bb B.a=8 C. b.βD.b_47.下列不正确的转义字符是( D)。
A.\\ B.\ 0 C.\" D.0x48.设整型变量a、b的值均为5,则表达式(m=n=a++)/(n=b-2)的值为( B)。
A.0 B.1 C.2 D.39.设a的值为5,执行下列语句后,b的值不为2的是( C)。
A.b=a/2 B.b=6-(--a) C.b=a%2 D.b=(float)a/2 10.执行语句x=(a=3,b=a--)后,x、a、b的值依次是( C)。
一. 选择题 (单项)1. C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。
A必须为字母B必须为下划线C必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符2.下面 4个选项中,均是 C 语言关键字的选项是——。
Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面 4个选项中,均是不合法的用户标识符的选项是——。
A A P_0 doBfloat la0_AC b- a goto int D_123 temp INT4.在 C 语言中,int 、char 和 short 三种类型的数据在内存中所占用的字节数——。
A由用户自己定义B均为 2 个字节C是任意的D由所用机器的机器字长决定5.下面 4 个选项中,均是合法浮点数的选项是——。
A+1e+15e-9.403e2B- .60 12e-4-8e5C123e 1.2e-.4 +2e - 1D-e3 .8e-4 5.e -06.下面不正确的字符串常量是——。
AˊabcˊB〞 12ˊ12〞C〞0 〞D〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++, a+b)的值是——。
A7B8C6D28.以下正确的叙述是——。
A在 C 语言中,每行只能写一条语句B若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数C在 C 程序中,无论整数还是实数,都能被准确无误的表示D在 C 程序中, % 是只能用于整数运算的运算符9.以下表达式值为 3 的是——。
A 16-13%10B2+3/2C 14/3-2D(2+6)/(12- 9)10.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ˊ aˊ +i*f 值的数据类型为——。
A intB floatC doubleD 不确定11.在 C 语言中, char 型数据在内存中的存储形式是——。
(完整版)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语言考试题及答案百度文库一、选择题1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个函数用于将字符串从源地址复制到目标地址?A. strcpyB. strncpyC. strcatD. strcmp答案:A3. 下列哪个选项是C语言中合法的整型常量?A. 0x4FB. 4.5EC. 0b1010D. 0L答案:A二、填空题1. C语言中,用于定义一个变量为静态存储期的关键字是________。
答案:static2. C语言中,用于定义一个变量为自动存储期的关键字是________。
答案:auto3. C语言中,用于定义一个变量为寄存器存储期的关键字是________。
答案:register三、简答题1. 请简述C语言中指针的作用。
答案:指针在C语言中用于存储变量的内存地址,通过指针可以间接访问和修改变量的值,实现动态内存分配和数组操作等功能。
2. 请解释C语言中数组和指针的关系。
答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。
数组的每个元素可以通过指针访问,指针的偏移量可以用于遍历数组。
四、编程题1. 编写一个C语言程序,实现两个整数的加法运算。
答案:```c#include <stdio.h>int main() {int a = 5, b = 10;int sum = a + b;printf("Sum of %d and %d is %d\n", a, b, sum);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int i, j;char temp;for (i = 0, j = strlen(str) - 1; i < j; i++, j--) { temp = str[i];str[i] = str[j];str[j] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```。
c语言考试题及答案详解C语言考试题及答案详解一、选择题1. 下列哪个是C语言的关键字?A. voidB. mainC. returnD. print答案:A2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C二、填空题1. 在C语言中,用于定义一个整型变量的关键字是 ____ 。
答案:int2. 以下代码段的输出结果是____。
```cint a = 5;printf("%d", a++);```答案:5三、简答题1. 请简述C语言中数组的定义方式。
答案:在C语言中,数组的定义方式是通过指定数据类型、数组名和数组的大小。
例如,定义一个整型数组,大小为10,可以写作:int array[10];四、编程题1. 编写一个C程序,实现求两个整数的和,并输出结果。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("Sum is: %d\n", sum);return 0;}```五、论述题1. 论述C语言中指针的概念及其重要性。
答案:指针是C语言中的一个重要概念,它存储了变量的内存地址。
指针的重要性在于它允许程序员直接操作内存,这使得动态内存分配、数组操作、函数参数传递等成为可能。
指针的使用提高了程序的灵活性和效率,但也增加了编程的复杂性。
六、案例分析题1. 给定以下C语言代码段,分析其功能并指出可能存在的问题。
```cint func(int *p) {return *p * 10;}int main() {int a = 5;printf("%d\n", func(&a));return 0;}```答案:该代码段定义了一个函数`func`,它接受一个整型指针作为参数,并返回该指针指向的值乘以10的结果。
C语言试题2019.03一、单项选择题(共30分,每题1分)1.在PC机中,‘\n’在内存占用的字节数是()A.1 B.2 C. 3 D.42.字符串“ABC”在内存占用的字节数是()A.3 B. 4 C.6 D.83.在C语言中,合法的长整型常数是()A.0L B.4962710 C.0.054838743 D.2.1869 e104.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次是()A.3,3,2 B.3,2,2 C.3,2,3 D.2,3,25.设有语句int a=3;,则执行了语句a+=a-=a*a后,变量a的值是()A.3 B.0 C.9 D.-126.设int k=32767;执行k=k+1;后k值为()最大值与最小值首尾相连A.32768 B.-32768 C.0 D.-17.下列正确的标识符是()A.hot_do B.a+b C.test! D.%y8.设int a=5,使b不为2的表达式是()A.b=6-(--a) B.b=a%2 C.b=a/2 D.b=a>3?2:19.执行x=(6*7%8+9)/5;后,x的值为()A.1 B.2 C.3 D.410.执行语句x=(a=3,b=a--)后,x,a,b的值依次为()A.3,2,3 B.2,3,2 C.3,3,2 D.3,2,211.设a=-3;执行(a>0)?a:-a;后,a的值为()A.3 B.1 C.0 D.-312.设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值为()A.7 B.8 C.9 D.213.下面正确的字符常量是()A.”c” B.’\\’’ C.’W’ D. ‘’14.若有代数式3ae/bc,则不正确的c语言表达式是()A.a/b/c*e*3 B.3*a*e/b/c C.3*a*e/b*c D.a*e/c/c*315.在C语言中,要求运算数必须是整型的运算符是()书中55页A./ B.++ C.!= D.%16.若有说明语句:char c=’\72’;则变量c ( )A.包含1个字符 B.包含2个字符C.包含3个字符 D.说明不合法,c值不确定17.sizeof (float)是()返回值为4。
下面程序段的输出结果是__10___. int a=12;a=a&052;printf("%o\n",a);当a=3,b=2,c=1;时,执行以下程序段后 c=__2___. if(a>b) a=b; if(b>c) b=c; else c=b; c=a;若所用变量都已正确定义,请填写以下程序段的输出结果__OK___.for(i=1;i<=5;i++);printf("OK\n");若有以下数组a,数组元素:a[0]~a[9],其值为 9 4 12 8 2 10 7 5 1 3 该数组的元素中,数值最小的元素的下标是_8____.函数的_递归____调用是一个函数直接或间接地调用它自身.以下程序的输出结果是__8 (用跟踪程序运行的方法观察递归的过程)___。
fun( int x ,int *s){ int f1, f2;if( n == 1 || n == 2) *s = 1;else{ fun( n - 1, &f1) ;fun(n - 2, &f2);*s = f1 + f2;}}main(){ int x;fun(6, &x);printf(“%d\n”, x );}int main(struct node *first){struct node *p;int m;p = first ->next;m = p ->data;for(p =p ->next; p != '\0'; p =__2002___ )if( _Shangxian____ ) m = p -> data;return m;}调用 fopen 函数打开一文本文件,在"使用方式"这一项中, 以“只读”方式打开需填入_r____. 设 int x=1/4;则x的值为_0____.设a=3,b=4,c=5,则表达式!(a+b)+c-1&&b+c/2的值为___1__.int x=4,y=4,z=2;x=y==z; 则x的值为_0____.以下程序的执行结果是__9___。
C语言常见复习题及参考答案一、选择题1.下述标识符中,()是合法的用户标识符。
A.A#CB.getchC.voidD.ab*2.在C语言中,字符型数据在内存中是以()形式存放的。
A.原码B.BCD码C.反码D.ASCII码3.以下选项中不合法的用户标识符是()。
A.abc.cB.fileC.MainD.PRONTF4.以下选项中不合法的用户标识符是()。
A.123B.printfC.Anbsp;D.Dim5.可以在C语言程序中用做用户标识符的一组标识符是()。
A.voidB.as-b3C.forD.2cdefine -123 -abc DoWORD If cas SIG6.在以下各组标识符中,合法的用户标识符是(1)、(2)、(3)。
(1)A.001 B.table_1 C.0_t D.k%Int t*.1 W10 point(2)A.Fast_ B.void C.pbl D.Fast+Big abs fabs beep(3)A.xy_ B.longdouble C.*p D.CHAR变量1 signed history Float7.()是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程8.若有说明:char s1='\067';char s2="1";char s3='1';则s1中(1),s2中(2),s3中(3)。
(1).A.包含3个字符 B.包含2个字符C.包含1个字符D.无定值,说明不合法(2).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法(3).A.包含1个字符 B.包含2个字符C.包含3个字符D.无定值,说明不合法9.若x为int型变量,则执行以下语句后,x的值为x=6;x+=x-=x*xA.36B.-60C.60D.-2410.在C语言中,char 型数据在内存中是以()形式存储的。
A.原码B.补码C.ASCII码D.反码11.以下运算符中优先级最低的算符为(),优先级最高的为()。
一、单项选择题(每题2分,15小题,共30分)1.C语言源程序是由组成的。
A) 过程B) 函数C) 子程序D) 主程序和子程序2.一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是。
A) 有零个或多个输入B) 有零个或多个输出C) 有穷性D) 可行性3.以下选项中合法的C语言标识符是。
A) long B) _2Test C) 3Dmax D) A.dat4.下列转义字符中错误的是。
A) '\000' B) '\14' C) '\x111' D) '\2'5.对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。
A) 语法错误B) f为5.0 C) f为0.0 D) f为2.06.若变量a,b已经正确定义并赋值,符合C语言语法的表达式是。
A) a2+b B) a*a+b C) a×a+b D) a·a+b7.有输入语句: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↙8.若 w=1,x=2,y=3,z=4,则条件表达式w<x ?w : y<z ?y : z的值是。
A) 4 B) 3 C) 2 D) 19.设int a=0,b=0,m=0,n=0;则执行(m = a==b)||(n = b==a)后m和n的值分别是。
A) 0,0 B) 0,1 C) 1,0 D) 1,110.以下for循环的执行次数是。
for (x=0,y=0; (y=123)&&(x<4);x++) ;A) 无限循环B) 循环次数不定C) 4次D) 3次11.下面程序段的输出结果是。
c语言考试题及答案以及解析一、选择题1. 下列哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A解析:在C语言中,关键字是保留的词汇,用于表示特定的语法结构。
int是C语言中用于声明整型变量的关键字。
2. C语言中,哪个运算符用于计算两个数的乘积?A. +B. -C. *D. /答案:C解析:在C语言中,乘法运算符是星号(*),用于计算两个数的乘积。
二、填空题1. 在C语言中,以下代码片段的输出结果是:```cint main() {int a = 5;printf("%d", a);return 0;}```输出结果为:_________答案:5解析:代码中的printf函数用于输出变量a的值,a被初始化为5,因此输出结果为5。
2. 下列代码段中,变量b的值是多少?```cint main() {int a = 10, b;b = a + 5;printf("%d", b);return 0;}```变量b的值为:_________答案:15解析:变量b被赋值为变量a加上5,由于a的值为10,所以b的值为15。
三、简答题1. 简述C语言中的数组是什么,并给出一个数组的声明和初始化的例子。
答案:C语言中的数组是一种数据结构,用于存储相同类型的多个元素。
数组的声明需要指定元素的类型和数组的长度。
数组的初始化可以在声明时完成。
解析:例如,声明一个整型数组并初始化:```cint numbers[5] = {1, 2, 3, 4, 5};```2. 解释C语言中的函数是什么,并给出一个简单函数的定义和调用的例子。
答案:C语言中的函数是一段具有特定功能的代码块,可以接收参数,并返回一个值。
函数的定义包括函数的返回类型、名称、参数列表和函数体。
函数的调用是使用函数名称和必要的参数来执行函数。
解析:例如,定义一个函数来计算两个数的和,并调用它:```cint add(int x, int y) {return x + y;}int main() {int result = add(5, 10);printf("%d", result);return 0;}```四、编程题1. 编写一个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语言程序,实现以下功能:输入一个字符串,判断它是否是回文(正读和反读都一样的字符串)。
C语言填空题以及答案1. 题目一:将数组a中的元素按从小到大的顺序进行排序,并输出排序后的数组。
答案:```c#include <stdio.h>void bubbleSort(int arr[], int n) {for(int i = 0; i < n-1; i++) {for(int j = 0; j < n-i-1; j++) {if(arr[j] > arr[j+1]) {int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}}int main(void) {int a[] = {5, 2, 9, 1, 3};int n = sizeof(a) / sizeof(a[0]);bubbleSort(a, n);printf("Sorted array: ");for(int i = 0; i < n; i++) {printf("%d ", a[i]);}return 0;}```2. 题目二:编写一个函数,判断一个数是否为素数,并在主函数中调用该函数。
答案:```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(void) {int num;printf("Enter a number: ");scanf("%d", &num);if (isPrime(num)) {printf("%d is a prime number.", num);} else {printf("%d is not a prime number.", num); }return 0;}```3. 题目三:编写一个递归函数,计算斐波那契数列的第n个数,并在主函数中调用该函数。
1.有如下函数调用语句fun(rec1,rec2+rec3,rec4*rec5),该语句中含有的实参个数是A)3 B)4 C)5 D)有语法错误2. 以下程序的输出结果是#include <stdio.h>int a, b;void fun(){ a=100; b=200; }void main(){ int a=5, b=7;fun();printf("%d%d \n", a,b);}A) 100200 B) 57 C) 200100 D) 753. C 语言规定:简单变量作为实参时,它和对应形参之间的数据传递方式是()。
A.地址传递 B.单向值传递C.由实参传给形参,再由形参传回给实参 D.由用户指定的传递方式4. 若有定义:int a=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为A) 1.4 B) 1 C) 2.0 D) 25. 以下不正确的字符串常量是(A)“x”(B)“ABC”(C)…ABC‟(D)“1”6. 若有定义:int x,y; char a,b,c;并有以下输入数据: 12ABC ↙(输入12ABC并回车)则能给X赋整数1,给Y赋数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是_______A)scanf("x=%d y=%d",﹠x,﹠y); a=getchar();b=getchar(); c=getchar();B)scanf("%d%d",﹠x,﹠y);a=getchar();b=getchar();c=getchar();C) scanf("%d%d%c%c%c",﹠x,﹠y,﹠a,﹠b,﹠c);D) scanf("%d%d%c%c%c%c%c%c",﹠x,﹠y,﹠a,﹠a,﹠b,﹠b,﹠c,﹠c);7. 若有说明语句:int a,b,c,*d=﹠c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是A) scanf("%d%d%d",﹠a,﹠b,d); B) scanf("%d%d%d",﹠a,﹠b,﹠d);C) scanf("%d%d%d",a,b,d); D) scanf("%d%d%d",a,b,*d);8. 若有以下定义和语句:int u=010,v=0x10,w=10;printf("%d,%d,%d\n",u,v,w);则输出结果是:A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,109. 下面程序的输出是( )#include "stdio.h"void main(){int x=100, a=10, b=20, ok1=5, ok2=0;if(a)if(b!=15)if(!ok1)x=1;elseif(ok2)x=10;x=-1;printf("%d\n",x);}A) -1 B) 0C) 1 D) 不确定的值10. 对下面的程序,正确的说法是。
C语言习题一、选择填空2-1要调用数学函数时,在#include命令行中应包含_C_。
(2分) A"stdio.h" B."string.h" C."math.h" D."ctype.h"2-2若变量已正确定义并赋值,符合C语言语法的表达式是_B._ (2分) A.a=2++ B.a=3,5 C.a=a+1=3 D.12.3%42-3表达式8>6>3值是(A )。
(2分)A.0B.1C.3D.表达式语法错2-4逻辑运算符两侧运算对象的数据类型(D)。
(2分)A.只能是0 或1B.只能是0 或非0 正数C.只能是整型或字符型的数据D.可以是任何类型的数据2-5以下名字,不能作为C语言标识符的是:C (2分)A.ThisIsQingdaoUniversityB.$$C.monkey~1D._2-6定义变量int a;,则表达式a = 3, 5; 执行过后,a的值和表达式的值分别是:A (2分)A.3 , 5B.5 , 3C.3 , 3D.5 , 52-7如果要求在if后一对括号中的表达式在表示a 不等于0 的时候的值为“真”,则能正确表示这一关系的表达式为(D )。
(2分)A.a<>0B.!aC.a=0D.a2-8能正确表示逻辑关系"a≥10 或a≤0"的C语言表达式是(D )。
(2分)A.a>=10 or a<=0B.a>=0 | a<=10C.a>=10 && a<=0D.a>=10 || a<=02-9下列程序段执行后s值为D。
int i=5, s=0;while(i--)if (i%2) continue;else s+=i;A.15B.10C.9D.6(2 分)2-10以下不正确的赋值或赋初值的方式是( C )。
选择题(30分)(第一部分分10分,第二部分12分,第三部分8分)第一部分:简单类题目( 50个题目,从中选择10,每题1分)1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为(C) A.4 B.16 C.32 D.5222.以下程序的输出结果(B)。
main( ){ int x1=3, x2=0, x3=0;if (x1=x2+x3)printf("* * * *");else printf("# # # #");}A.输出:* * * * B.输出:# # # #C.存在语法错误 D.无输出结果3.下面四个选项中,均是合法转义字符的选项是(A)。
A.'\'' '\\' '\n' B.'\' '\017' '\"'C.'\018' '\f' 'xab' D.'\\0' '\101' 'xlf'4.若有说明:int a=1,b=2,c=3,d=4;则表达式a<b?a:c<d?c:d的值是(D)。
A、4B、3C、2D、15.设i、j、和k是int型变量,且i=3,j=4,k=5,则以下值为0的表达式是(D)。
A. i&&j B.i<=jC.i||j+k&&j-k D.!((i<j)&&!k||1)6.若希望当num的值为奇数时,表达式的值为“真”,num的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是(C)。
A.num%2= =1 B. !(num%2= =0) C.!(num%2) D.num%27.有以下程序main(){ int m=3,n=4,x;x=-m++;x=x+8/++n;printf(“%d\n”,x);}程序运行后的输出结果是 ( D ) 。
A.3 B.5 C.-1 D.-28.若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是 ( C ) 。
A.a=9+b+c=a+9 B.a=9+b;c=a+9;C.a=(9+b,b++) D.a=9+b++=a+79.若有以下定义,若int m=7,n=12,则能得到值为3的表达式是 ( D ) 。
A.n%=(m%=5) B.n%=(m-m%5)C.n%=m-m%5 D.(n%=m)-(m%=5)10.以下能正确定义整型变量x、y和z并为其赋初值5的语句是 ( C ) 。
A.int x=y=z=5; B.int x,y,z=5;C.int x=5,y=5,z=5; D.x=5,y=5,z=5;11.若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|<10的是 ( C ) 。
A.abs(x-y)<10 B.x-y>-10&&x-y<10C.(x-y)<-10||!(y-x)>10 D.(x-y)*(x-y)<10012. 设 int a=12,则执行完语句 a+=a-=a*a后,a的值是( D )。
A 552B 264C 144D -26413 以下叙述不正确的是( D )A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面14 下关于运算符优先顺序的描述中正确的是( C )。
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符15 下列程序的输出结果是( C )main( ){ int a=7,b=5;printf("%d\n",b=b/a);}A 5B 1C 0 D不确定值16 printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。
如果字符串长度大于5,则输出按方式(B)A) 从左起输出该字串,右补空格B) 按原字符长从左向右全部输出C) 右对齐输出该字串,左补空格D) 输出错误信息17. 以下叙述正确的是( C )A. 在C程序中,main函数必须位于程序的最前面B. C程序的每行中只能写一条语句C. C语言本身没有输入输出语句D. 在对一个C程序进行编译的过程中,可发现注释中的拼写错误18. 假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( B )A. 7B. 8C. 6D. 219. 下面不正确的字符串常量是( A )··················A. 'abc'B. "1212"C. "0"D. ""20. 已知各变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( A )A. a+=a-=(b= 4)*(a=3)B. a=a*3=2C. x%(-3)D. y=f1oat(i)21. 若有说明语句:char c='\72'则变量c描述正确的是( A )A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法,c的值不确定22. 已有定义int x; f1oat y;且执行scanf("%3d%f",&x,&y);语句,若输入12345 78(回车),则x 的值为 ( B )A. 12345B. 123C. 45D. 34523. 能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是( C )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)24.设整型变量n=10,i=4,则赋值运算n%=i+1执行后,n的值是(A)A. 0B. 1C. 2D. 325.在if(x)语句中的x与下面条件表达式等价的是:(A)A) x!=0 B) x==1 C) x!=1 D) x==026、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为(A)A、DB、EC、一个不确定的值D、C27. 已知x=3、y=2,则表达式 x*=y+8的值为( C )A)3 B)2 C)30 D)1028. 设x为int型变量,则执行以下语句后,x的值为( B )。
x=10;x+=x- =x-x;A)10 B)20 C)40 D)3029 若有以下类型说明语句:char a; int b;float c; double d; 则表达式a*b+d-c的结果类型为( D )A.float B.char C.int D.double30 若二维数组a有m列,则在a[i][j]前的元素个数为( B )A)j*m+i B) i*m+jC)i*m+j-1 D) i*m+j+131 对for(表达式1;;表达式3)可理解为( B )A)for(表达式1;0;表达式3)B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3)D)for(表达式1;表达式3;表达式3)32 以下描述不正确的是( C )。
A.使用while和do-while循环时,循环变量初始化的操作应在循环体语句之前完成B.while循环是先判断表达式,后执行循环语句C.do-while 和for循环均是先执行循环语句,后判断表达式D.for、while 和do-while循环中的循环体均可以由空语句构成33.下列程序段的运行结果是( C )。
int n=0; while(n++<=3); printf(“%d”,n);A 3B 4C 5D 有语法错误34. 设int a=3,b=4,c=5;,下列表达式的值不为1的是( A )。
A)a+b>c&&b==c B)a||b+c&&b-cC)!(a>b)&&!c||1 D)!(a+b)+c-1&&b+c/235. 有以下程序:#include <stdio.h>void main ( ){int a=1,b=2,m=0,n=0,k;k=(n=b>a)||(m=a<b);printf ("%d,%d\n",k,m);}程序运行后的输出结果是( C )。
A)0,0 B)0,1 C)1,0 D)1,136、以下能正确进行字符串赋值操作的是( D )A、char s[5]={"ABCDE"};B、char s[5]={'A', 'B', 'C', 'D', 'E'};C、char *s; *s="ABCDE";D、char *s="ABCDE";37 下面程序的运行结果是(B)#include <stdio.h>#include <string.h>main(){char *s1="AbDeG";char *s2="AbdEg";s1+=2;s2+=2;printf("%d",strcmp(s1,s2));}A) 正数 B) 负数C) 零D) 不确定的值38若有定义:int a[2][3],则对a数组的第i行j列元素地址的正确引用为(A )A) *(a[i]+j) B) (a+i) C) *(a+j) D) a[i]+j39以下能对二维数组y进行初始化的语句是(B)A、static int y[2][ ]={{1,0,1}, {5,2,3}};B、static int y[ ][3]={{1,2,3}, {4,5,6}};C、static int y[2][4]={{1,2,3}, {4,5} , {6}};D、static int y[ ][3]={{1,0,1,0}, { }, {1,1}};40 以下printf语句的输出结果是(B)printf("%d\n", strlen("school");A、7B、6C、存在语法错误D、不定值41 不能把字符串:Hello!赋给数组b的语句是( B)。