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语言程序设计__承德石油高等专科学校(5)--期中自测题
基础篇(一~五单元)自测题一 . 基础知识题1. 按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是()。
A. 大写字母B. 连接符C. 数字字符D. 下划线2. 对于一个正常运行的C 程序,以下叙述中正确的是()。
A. 程序的执行总是从main 函数开始,在main 函数结束B. 程序的执行总是从程序的第一个函数开始,在main 函数结束C. 程序的执行总是从main 函数开始,在程序的最后一个函数中结束D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束3. 以下合法的字符型常量是()。
A."x13'B."\018"C."65"D."\n"4. 下列运算符中,优先级最高的是()。
A.++B.%C.* (算术乘法)D.=5. 设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()。
A. k++B. k+=1C.++kD. k+16. 设变量均已正确定义,若要通过scanf("%d%c%d%c",&al,&cl,&a2,&c2); 语句为变量al 和a2赋数值10和20,为变量cl 和c2 赋字符X 和Y。
以下所示的输入形式中正确的是(注:□代表空格字符;对于%c来说,可接受键盘输入的任何符号.) ()。
A.10□X□20□Y<回车>B.10□X20□Y<回车>C.10□X<回车〉D.10X <回车>20□Y<回车> 20Y <回车>7. 有以下程序void main(){ int x=0x2F;printf("%d\n",x);}程序运行后的输出结果是()。
A.47B. 17C.2FD. 0x2F8.以下程序输出结果为()。
C语言程序设计__承德石油高等专科学校(17)--综合自测题(一)
0987654321 #include <stdio.h> void inv( int *x, int n ) {
} void main( ) { int i, a[10]={1,2,3,4,5,6,7,8,9,0};
inv(a,10); //调用转换函数 printf("按相反顺序存放后的数组为:"); for(i=0; i<10; i++) printf("%4d", a[i]); }
char ch;
ch= 【1】 ;
if(ch>='A'&& 【2】 )
【3】
else if(
【4】
)
【5】 putchar(ch);
(2)下面程序的功能是:输出 1000 以内能被 3 整除且个位数为 3 的所有整数,请填空。 void main() { int i,j; for(i=0; 【1】 ;i++)
A.p=&n; scanf"%d",&p);
B.p=&n; scanf("%d",*p);
C.scanf("%d",&n); *p=n;
D.p=&n; *p=m;
19.若有定义 int a[ ]={1,3,5,7,9,11}, *p=a;,则能够正确引用该数组元素的是( )。
A.a
B.a[6]
C.*(p--)
A.char ch='\X2A'; B.char ch="c"; C.char ch=65; D.char ch=NULL; 4.设有定义:double d1,d2,h;,其中 d1 和 d2 分别为梯形的上下底边长,h 为梯形的高,则以下 C 语言表
C语言程序设计自检自测题及解答一
《C++语言程序设计》自检自测题及解答(一)2002年07月28日宁夏电大教学处一、单选题(每小题1分,共6分)1. 由C++目标文件连接而成的可执行文件的缺省扩展名为________。
2. 在下面的一维数组定义中,哪一个有语法错误。
________A、 int a[]={1,2,3};B、int a[10]={0};C、 int a[];D、 int a[5];3. 在下面的函数声明中,存在着语法错误的是________。
A、 void BC(int a, int);B、void BD(int, int);C、void BE(int, int=5);D、int BF(int x; int y);4. 假定AB为一个类,则该类的拷贝构造函数的声明语句为________。
A、 AB&(AB x);B、 AB(AB x)C、 AB(AB&);D、 AB(AB* x)5. 对于结构中定义的成员,其隐含访问权限为________。
A、 publicB、 protectedC、 privateD、 static6.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为________。
A、 ios::inB、 ios::outC、 ios::in | ios::outD、没有二、填空题(每小题2分,共24分)1. 1.执行"cout<<43<<'-'<<18<<'='<<43-18<<endl;"语句后得到的输出结果为________。
2. 2.已知'A'~'Z'的ASCII码为65~90,当执行"char ch=14*5+2;cout<<ch<<endl;"语句序列后,得到的输出结果为________。
C语言测试题
17. 用语句a=a+b,b=a-b,a=a-b;可以交换a,b两个变量的值。( )答案为√
18. 在C语言中,定义int a=b=c=5;是错0的,而int a,b,c; a=b=c=5;是的.( )答案为√
19. 表达式“5=3”是一个关系表达式,且其值为0。( )答案为×
b=x++;
c=y;
(A)a=9,b=9,c=9 (B)a=9,b=10,c=9 (C)a=1,b=11,c=10 (D)a=8,b=8,c=10
答案为D
5. 执行下面的程序段后,B的值为( )。
int x=35;
char z=''A'';
int B;
B=((x&15)&&(z<''a''));
(A) 0 (B) 1 (C) 2 (D) 3
答案为B
6. 表达式11&10的结果用二进制表示为( )。
A)11 B)3 C)1 D)10
答案为D
7. 设有语句int a=3;则执行语句a+=a-=a*a后,变量a的值是( )。
23. 设int x=3,y=2;表达式(y++==--x)?y++:x++的值是3。( )答案为√
24. 已知int a=5,b=5; 则表达式: ++a>b?a:b-->++a?++b:a的值为6。( )答案为√
25. 表达式~(~1<<3)的值是15。( )答案为√
C语言测试题(附有详细解析)
C语言测试题(附有详细解析)一、选择题1. 以下哪个选项是C语言的关键字?A. ifB. sizeofC. structD. include解析:C语言中,关键字是指被C语言本身定义的具有特定意义的单词。
选项A的`if`是关键字,用于条件判断;选项C的`struct`是关键字,用于定义结构体;选项D的`include`实际上是预处理指令的一部分,不属于关键字。
选项B的`sizeof`是运算符,用于计算数据类型或变量的大小。
因此,正确答案是A、C。
2. 在C语言中,以下哪个选项表示整型变量?A. charB. intC. floatD. double解析:在C语言中,`int`类型用于存储整数。
选项A 的`char`用于存储字符;选项C的`float`和选项D的`double`用于存储浮点数。
因此,正确答案是B。
3. 以下哪个选项表示逻辑运算符?A. `++`B. `--`C. `&&`D. `%`解析:逻辑运算符用于连接多个条件表达式,包括与运算符`&&`、或运算符`||`和非运算符`!`。
选项C的`&&`是逻辑与运算符。
选项A的`++`和选项B的`--`是算术运算符,用于自增和自减;选项D的`%`是取模运算符。
因此,正确答案是C。
二、填空题1. 在C语言中,定义一个整型变量`a`并赋值为10的代码是______。
解析:定义整型变量`a`并赋值为10的代码如下:```cint a = 10;```2. 以下代码的输出结果是______。
```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++ + ++x);return 0;}```解析:在C语言中,`x++`是先使用x的值,然后x自增1;`++x`是先x自增1,然后使用x的值。
因此,`x++ + ++x`的执行过程如下:- `x++`,此时x的值为5,输出5;- `++x`,此时x的值为6,输出6;- 最终输出结果为11。
C语言自测题
单选题1. A 是构成C语言的基本单位。
A.函数B.过程C.子程序D.子例程2.能正确表示a≥10或a≤0关系表达式的是C 。
A.a>=10 or a<=10B.a>=10 | a<=0C.a>=10 || a<=0D.(a>=10,a<=0)3.以下 B 是C合法的标识符。
A.A#CB.entryC.voidD.ab*4.设c1是char类型的变量,则判断c1是否为数字字符的正确表达式是 A 。
A.(c1>=’0’)&&(c1<=’9’)B.(c1>=0)&&(c1<= 9)C.’0’<=c1<=’9’D.(c1>=’0’)||(c1<=’9’)5.在C语言中,字符型数据在内存中是以 D 形式存放的。
A.原码B.BCD码C.反码D.ASCII码6.若有以下类型说明语句:char w; int x; float y; double z,则表达式w*x+z-y结果的类型是:D 。
A.floatB.charC.intD.double7.若有int a=0,x=1; 则循环语句while(a<10) x++; a++; 循环执行 A 。
A.无限次B.不确定次C.10次D.9次8.定义int n=5;下面语句的输出结果为 B 。
printf(n%2 ? “AAA”:”BBB”);A.无输出B.AAAC.BBBD.AAABBB9.下列语句中,正确的是: DA.int a[3][]={{1},{2}}B.int a[][]={{1,2},{4},{5,6,7}};C.int a[3][]={{1,2},{4,5}};D.int a[4][3]={{1},{4,2},{0,6,7}};10.下列定义不正确的是: A 。
A.int i, *p=i;B.int *p,i;C.int i,*p=&i;D.int i,*p;11.在C语言程序中,有关函数的描述正确的是 C 。
C语言测试题(附有详细解析)
C语言测试题(附有详细解析)一、选择题1. 下面哪个选项是C语言的合法标识符?A. voidB. 2varC. intD. _temperature解析:C语言的标识符必须以字母或下划线开头,后面可以跟字母、数字或下划线。
选项A和C是C语言的关键字,不能作为标识符。
选项B以数字开头,不合法。
选项D符合标识符的规则,是正确的。
2. 在C语言中,哪个关键字用于定义整型变量?A. floatB. intC. doubleD. char解析:在C语言中,关键字`int`用于定义整型变量。
选项A 用于定义浮点型变量,选项C用于定义双精度浮点型变量,选项D用于定义字符型变量。
因此,正确答案是B。
3. 下面哪个选项是C语言中的逻辑运算符?A.++B. &&C. ||D. !=解析:C语言中的逻辑运算符包括`&&`(逻辑与)和`||`(逻辑或)。
选项A是自增运算符,选项D是不等于运算符,因此正确答案是B和C。
二、填空题4. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5;printf("%d\n", x++);return 0;}```解析:这段代码的输出是5。
在`printf`语句中,`x++`是后缀自增运算符,它先输出x的当前值5,然后x的值增加1。
因此,输出为5。
5. 下面代码的输出是什么?```c#include <stdio.h>int main() {int x = 5, y = 10;printf("%d\n", x > y ? x : y);return 0;}```解析:这段代码的输出是10。
条件运算符`?:`是一个三元运算符,它根据第一个表达式的值来选择第二个或第三个表达式。
在这个例子中,`x > y`是假的,所以输出是`y`的值,即10。
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语言自测题
选择题1 C语言中使用的字符常量,其起止标记符是(单引号)。
2语言中使用的字符串常量,其起止标记符是(双引号)。
3在C语言中,一条简单语句的结束符是(分号)。
4在C语言中,每条复合语句的开始标记字符为({).5不符合C语言规定的复合语句是({y=10})。
6 C语言中的选择类语句有两条,它们是(if和switch ).7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。
8 C语言程序中的基本功能模块为(函数).9 一个函数定义所包含的两个部分是(函数头和函数)。
10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#).11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对(尖括号)。
12在C语言程序中,单行或行尾注释使用的标记符为(//)。
13在C语言程序中,多行注释使用的结束标记符为(*/).14用于输出表达式值的标准输出函数是(printf())。
15在printf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
16在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(int)。
17在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(float)。
18在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(5 )。
19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为(逗号或回车)。
20用于从键盘上为变量输入值的标准输入函数是(scanf())。
21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
22在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d",则规定输入的两个数据之间的分隔符为(@)。
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=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、if, struct, type(3)下面四个选项中,均是不合法的用户标识符的选项是A、A,P_0,doB、float,1a0, _AC、b-a, goto, intD、_123, temp, INT(4)若有代数式3ae/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;unsinged 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 型,以下合法的scanf函数调用语句是A、scanf(“%d%lx,%le”,&x,&y,&z);B、scanf(“%2d*%d%lf”,&x,&y,&z);C、scanf(“%x%*d%o”,&x,&y,&z);D、scanf(“%x%o%6.2f”,&x,&y,&z);(3)当输入数据的形式为:25,13,10<回车>时,以下程序的输出结果为main(){int x,y,z;scanf(“%d%d%d”,&x,&y,&z);printf(“x+y+z=%d\n”,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=int(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)以下程序的运行结果是#include “stdio.h”main(){int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A、6,1B、2,1C、6,0D、2,0(3)请阅读以下程序:main(){int a=5 , b=0 , c=0;if (a+b+c) printf(“* * *\n”);else printf(“$ $ $\n”);}以上程序。
C语言程序设计--自测题(三)
D、文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
26、以下叙述中正确的是______。
A、C程序中注释部分可以出现在程序中任意合适的地方
B、花括号"{"和"}"只能作为函数体的定界符
C、构成C程序的基本单位是函数,所有函数名都可以由用户命名
r=fun(fun(x,y),2*z);
printf("%d/n",r);
}
程序运行后的输出结果是______。
A、3
B、6
C、8
D、12
32、有以下程序段
main()
{ int a=5,*b,**c;
c=&b; b=&a;
……
A、if (c<a) x=1;
else if (b<a) x=2;
else x=3;
B、if (a<3) x=3;
else if (a<2) x=2;
else x=1;
C、if (a<3) x=3;
if (a<2) x=2;
if (a<1) x=1;
30、以下选项中可作为C语言合法整数的是______。
A、10110B
B、0386
C、0Xffa
D、x2a2
31、有以下程序
fun(int a, int b)
{ if(a>b) return(a);
C语言自测题参考答案
自测题1一、单项选择题(2*20=40分)1.C语言中下列叙述正确的是____________。
DA、不能使用do-while语句构成的循环B、do-while语句构成的循环,必须用break语句才能退出C、do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D、do-while语句构成的循环,当while语句中的表达式值为零时结束循环2.以下选项中,能定义s为合法的结构体变量的是____________。
BA、typedefstructabc {double a;char b[10];} s;B、structabc{double a;char b[10];}s;C、struct ABC {double a;char b[10];};ABC s;D、typedef ABC{double a;char b[10];};ABC s;3.若x和y都是int型变量,x=3、y=200,则语句printf("%c",y/x);输出结果是__________。
AA、BB、66C、66.6D、输出格式符不够,输出不确定的值4.请选出可用作C语言用户标识符的一组标识符____________。
B①void ②a3_b3 ③For ④2adefine _123 _abc DOWORD IF case sizeofA、①B、②C、③D、④5.设ch是char型变量,其值为字母A,下面的表达式的值是____________。
Bch=(ch>='A'&&ch<='Z')?(ch+32):chA、AB、aC、ZD、z6.已知a为int类型的一维数组,p为整型的指针变量,其定义如下:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则语句printf("%d\n",*(p+2));的输出结果是____________。
c语言程序设计自检自测题及答案 (2)
《C++语言程序设计》自检自测题(三)及答案一、给出下列程序运行后的输出结果1.#include<iostream.h>void main(){int s1=0,s2=0;for(int i=0;i<10;i++)if(i%2)s1+=i;else s2+=i;cout<<s1<<’’<<s2<<endl;}2.#include<iostream.h>void main(){int a[8]={8,19,26,15,6,24,27,18};int i2=0,i3=0;for(int i=0;i<8;i++)if(a[i]%2==0)i2++;else if(a[i]%3==0)i3++;cout<<i2<<’’<<i3<<endl;}3.#include<iostream.h>void main(){int a[3][4]={{1,2,7,8},{5,6,11,12},{9,20,3,4}};int m=a[0][0];int ii=0,jj=0;for(int i=0;i<3;i++)for(int j=0;j<4;j++)if(a[i][j]>m){m=a[i][j];ii=i;jj=j;}cout<<ii<<’’<<jj<<’’<<a[ii][jj]<<endl;}4.#include<iostream.h>void main(){int a=10,b=15;cout<<a<<’’<<b<<endl;{a*=3;int b=a+20;cout<<a<<’’<<b<<endl;}cout<<a<<’’<<b<<endl;}5.#include<iomanip.h>void main(){int x=20,y=40,*p;p=&x;cout<<*p<<’’;*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<’’<<y<<endl;}6.#include<iostream.h>void SB(char ch){switch(ch){case ’A’:case’a’:cout<<”well!”;break;case ’B’:case’b’:cout<<”good!”;break;case ’C’:case’c’:cout<<”pass!”;break;default:cout<<”bad!”;break;}cout<<endl;}void main(){char a[6]=”Abcaf”;for(int i=0;a[i];i++)SB(a[i]);}7.#include<iostream.h>void main(){int a[8]={36,25,48,14,55,40,72,40}; int b1,b2;b1=b2=a[0];for(int i=1;i<8;i++)if(a[i]>b1){if(b1>b2)b2=b1;b1=a[i];}cout<<b1<<’’<<b2<<endl;}8.#include<iomanip.h>void main(){int a[8]={3,5,7,9,11,13,15,17}; int *p=1;for(int i=0;i<8;i++){cout<<setw(5)<<*p++;if((i+1)%3==0)cout<<endl;}}9.#include<iomanip.h>void LG(int* & a,int& m){a=new int [m];int *p=a;for(int i=0;i<m;i++)*p++=i*i;}void main(){int *b,n=5;LG(b,n);for(int i=0;i<n;i++)cout<<b[n-i-1]<<’’;cout<<endl;delete[]b;}10.#include<iostream.h>#include<string.h>struct Worker{char name[5];//姓名int age; //年龄float pay; //工资};void main(){char *t=”WeiRong”;int d=45;float f=1235;strcpy(,t);x.age=d;x.pay=f;cout<<<<’’<<x.age<<’’<<x.pay<<endl; }11.#include<iostream.h>void main(){int s=0;for(int i=1;i<=5;i++)s+=i*i;cout<<”s=”<<s<<endl;}12.#include<iostream.h>void main(){int s=0;for(int i=1;;i++){if(s>50)break;if(i%2==0)s+=i;}cout<<”i,s=”<<i<<”,”<<s<<endl;}13.#include<iomanip.h>int LB(int *a,int n){int s=1;for(int i=0;i<n;i++)s*=*a++;return s;}void main(){int a[]={1,2,3,4,5,6,7,8};cout<<LB(a,5)<<’’<<LB(&a[3],3)<<’’;cout<<LB(a+2,4)<<endl;}14.#include<iostream.h>char name[15];//姓名int age; //年龄float pay; //工资};void main(){Worker x{“wangfong”,43,640};Worker y,*p;y=x;p=&x;cout<<<<’’<<y.age<<’’<<y.pay<<endl;cout<<p->name<<’’<<p->age*2<<’’<<p->pay+100<<endl; }二、写出下列每个函数的功能1.#include<iostream.h>int S(int a,int b){if(a>b)return 1;else if(a==b)return 0;else return -1;}2.#include<math.h>bool SG(int x){ //x为大于等于2的整数int a=int(sqrt(x));//取x的平方根int i=2;while(i<=a){if(x%i==0)break;i++;}if(i<=a)return 0;else return 1;}3.// struct Worker{// char name[15];//姓名// int age; //年龄// float pay; //工资};void Q(Worker a[],int n){for(int i=0;i<n;i++)cin>>a[i].name>>a[i].age>>a[i].pay;}4.#include<iomanip.h>#include<fstream.h>void JD(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件 //假定该文件保存着一批整数{ifstream fin(fname,ios::in|ios::nocreate\ios::binary)int x,s=0,n=0;while(fin.read((char*)&x,sizeof(x))){s+=x;n++;}cout<<n<<’’<<s<<’’<<float(s)/n<<endl;fin.close();}5.float FI(int n){//n为大于等于1的整数float x,y=0;do{cin>>x;n--;y+=x*x;}while(n>0);return y;}6.#include<iostream.h>void WA(int a[],int n){for(int i=0;i<n-1;i++){int k=i;for(int j=i+1;j<n;j++)if(a[j]<a[k])k=j;int x=a[i];a[i]=a[k];a[k]=x;}}7.#include<iostream.h>void LI(int n){int *a=new int[n];for(int i=0;i<n;i++)cin>>a[i];for(i=n-1;i>=0;i--)cout<<*(a+i)<<’’;cout<<’\n’;delete []a;}8.#include<iomanip.h>#include<fstream.h>#include<string.h>void JA(char *fname)//可把以fname所指字符串作为文件标识符的文件称为fname文件{ofstream fout(fname);char a[20];cin>>a;while(strcmp(a,”end”)!=0){fout<<a<<endl;cin>>a;}fout.close();}9.int WC(int a[],int n,int k){int c=0;for(int i=0;i<n;i++)if(a[i]>=k)c++;return c;}10.#include<iostream.h>int *LJ(int a[],int n){int k=0;for(int i=1;i<n;i++)if(a[i]>a[k])k=i;return &a[k];}11.//struct DNode{// double data; //值域// DNode *next; //指针域//};void QB(DNode* & f,int n){if(n==0){f=NULL;return;}f=new DNode;cin>>f->data;DNode *p=f;while(--n){p=p->next=new DNode;cin>>p->data;}p->next=NULL;}12.#include<iostream.h>#include<fstream.h>#include<string.h>int JB(char *fname,char *key)//可把以fname所指字符串作为文件标识符的文件称为fname文件,//假定该文件中保存着一批字符串,每个字符串的长度均小于20。
(完整版)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语言程序设计__承德石油高等专科学校(4)--自测题及答案
; s=3.14*r*r;
; }
C 语言程序设计
5.给下面程序补上必要的语句,使程序的运行结果为:a=3,b=7,c1=A,c2=a #include “stdio.h”
void main() { int a,b;
char c1,c2; scanf(“%d %d”,&a,&b);
scanf(“%c %c”,&c1,&c2); _________________ ; }
答案
一、判断题
1. F 2. T 3. F 4. F 5. F 6. T 7. F
二、单项选择题
1. D 2.A 3. C 4. D 5.D 6. C 7.D 8.A
三、填空题
1. putchar(“\n”); 2. 72 D 3. 4 4.scanf(“%f”,&r); printf(“%f” ,s); 5. printf(“a=%d,b=%d,c1=%c,c2=%c”,a,b,c1,c2); 6. 57 60 63 7. 0.000000 四、编写程序题
B.****
C.可以通过编译,但是不能通过连接,因而不能运行 D.# # # #
8.以下不正确的 if 语句形式是______________。 A.if (x>y && x!=y) ; B.if (x==y) x+=y; C.if (x!=y) scanf(“%d”,&x) else scanf(“%d”,&y);
...... else ; …… 是正确的。 ( )
二、单项选择题
1.正确的标识符是_________。
A.?a
B.a=2 C.a.3
电子科技大学《C语言》自测题答案
自测题1答案一、填空题(每空1分,共29分)1、若有以下的定义:int a [6];则数组a元素的下标的上限为 5 ,下限为 0 。
2、局部的变量是在函数内部定义的,它们只在本函数有效。
3、组成C程序的若干函数中,只能且必须有一个主函数。
4、C语言中的变量名可以由字母,数字和下划线三种字符组成,且首字符不能是。
5、枚举类型enum color (bla,blu,gre=3,cya,red)中的枚举项的值bla=__0__、blu=__1__、cya=__4__、red=__5___.6、c语言中变量的存储属性有自动、____静态____、__外部______和寄存器四种。
7、算术运算符,关系运算符,赋值运算符的优先级从低到高依次是赋值运算符,关系运算符,算术运算符。
8、标准文件是系统自动打开和关闭的,但是一般用户文件,必须在程序中用函数_fopen( )_打开文件,文件操作结束后,用__fclose( )_关闭文件。
9、函数参数有形式参数和实际参数两种形式。
10、程序的三种基本结构是顺序结构,选择结构,循环结构。
11、x、y、z均为int型变量,请写出描述“x或y中有一个小于z”的表达式__x<z||y<z_。
12、下面程序的运行结果是: c1=c,c2=abc# include <>main( ){char s[10]={“abc”};printf(“c1=%c,c2=%s\n”,s[2],s);}13、如果a=5,b=2,c=3,d=4,则表达式a<ba:c<dc:d的值是 3 。
14、设a=6,b=2,表达式a*=a+b运算后a的值为 48 。
15、设x=.,a=9,y=,表达式x+a%2*(int)(x+y)%2/4的值。
二、选择题(每小题2分,共26分)1、一个C程序的执行是从 AA)本程序的main函数开始,到main函数结束。
B)本程序的第一个函数开始,到本程序最后一个函数结束。
c语言 测试题
第3章一、单项选择题1. 在一个C程序中(B )。
A.)main函数必须出现在所有函数之前B)main函数可以在程序任何位置出现C)main函数必须出现在所有函数之后D)main函数必须出现在固定位置2.在PC机中,’\n’在内存占用的字节数是( A )。
A)1 B)2 C)3 D)43. 下列关于C语言用户标识符的叙述中正确的是(B )A)用户标识符中可以出现下划线和中划线(减号)B)用户标识符中不可以出现中划线(减号),但可以出现下划线C)用户识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头4. 以下叙述中正确的(D )。
A.)输入项可以是一个实型常量,例如:scanf("%f",3.5);B.)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf("a=%d,b=%d");C.)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf("%4.2f ",&f);D.)当输入数据时,必须指明变量地址,例如:scanf("%f ",&f);5.设整型变量i的值为3,则计算表达式i---i后i的值为( A )。
A)0 B)1 C)2 D)表达式出错6.设整型变量a,b,c均为2,表达式a+++b+++c++的结果是( A )。
A)6 B)9 C)8 D)表达式出错7. 以下选项中合法的用户标识符是( B )。
A)long B)_2test C)3Dmax D )A.dat8.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是( D )。
A)3 B)0 C) 9 D)-129.在以下一组运算符中,优先级最高的运算符是( C )。
A)<= B)= C)% D)||10.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( D )。
C理论自测题及参考答案(第1次)
A. x++ B. y++ C. c++ D. d++ 31. 以下语句中有语法错误的是 。 A. printf("%d",0e); B. printf("%f",0e2); C. printf("%d",0x2); D. printf("%s","0x2"); 单选题答案:1-5: DCBCA 6-10:BAADD 11-15: DCCAB 16-20:BBDAB 21-25: DDADB 26-30:CCDCD 31-35: A 二、多选题 1.以下常量表示中,不正确的是______。 A.10u B.–123 C.016 D.018 E.0010 F.-011 G.0a H.0xa I.0x8f
G. ++a=++b 3.以下能正确计算代数式)2 1(sin 3 12 的 c 语言表达式有 。 A.1/3*sin(1.0/2.0)*sin(1.0/2.0) B.sin(0.5)*sin(0.5)/3 C. pow(sin(0.5),2)/3 D. 1/3.*pow(sin(1/2),2) 4. 已知有声明”int x=1;”则下列表达式中值为 0 的是 。 A.x+=x-=x B.x%(x=x-2) C.x/=x+x D.(x/=4)/2*x 5.设以下表达式中引用的变量均为 int 型,则值等于 7 的表达 式是______。 A.x=y=6,x+y,x+1 B.x=6,x+1,y=6,x+y C.x=y=6,y+=x,++x D.x=(y=6,y++),++x 多选题答案:1. DGJNOPTUV 2. AEFG 3. BC 4. ABCD 5. ACD 三、填空题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
选择题1 C语言中使用的字符常量,其起止标记符是(单引号)。
2语言中使用的字符串常量,其起止标记符是(双引号)。
3在C语言中,一条简单语句的结束符是(分号)。
4在C语言中,每条复合语句的开始标记字符为({)。
5不符合C语言规定的复合语句是({y=10})。
6 C语言中的选择类语句有两条,它们是(if和switch )。
7在每个C语言程序中都必须包含有这样一个函数,该函数的函数名为(main)。
8 C语言程序中的基本功能模块为(函数)。
9 一个函数定义所包含的两个部分是(函数头和函数)。
10 一个程序文件开始使用的每条预处理命令,其首字符必须是(#)。
11在一个程序文件中,若要使用#include命令包含一个系统头文件,则此头文件所使用的起止定界符为一对(尖括号)。
12在C语言程序中,单行或行尾注释使用的标记符为(//)。
13在C语言程序中,多行注释使用的结束标记符为(*/).14用于输出表达式值的标准输出函数是(printf())。
15在printf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
16在printf()函数调用的格式字符串中,若使用格式符为“%d”,则对应输出的数据类型为(int)。
17在printf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输出的数据类型为(float)。
18在printf()函数调用的格式字符串中,若使用格式符为“%5d”,则规定对应输出的数据占用的字符位置个数为(5 )。
19程序运行中需要从键盘上输入多于一个数据时,若不特别规定分隔符,则输入的各数据之间所使用的分隔符为(逗号或回车)。
20用于从键盘上为变量输入值的标准输入函数是(scanf() )。
21在scanf()函数调用的格式字符串中,每个格式符的先导字符为(%)。
22在scanf()函数调用的格式字符串中,若使用格式字符串为“%d,%d”,则规定输入的两个数据之间的分隔符为(@ )。
23C语言源程序文件的扩展名为(c)。
24每个C语言程序文件的编译错误的类型有(2种)。
25每个C程序文件在编译时可能出现有警告性错误,其对应的标识符号为(warning )。
26.C语言中的循环类语句有3条,它们是(for,while,do)。
27.C语言中的跳转类语句有四条,它们是goto,return和(break,continue)。
28.当不需要函数返回任何值时,则所使用的返回类型为(void)。
29.在一个函数定义中,函数头包括的3个部分依次为函数类型、函数名和(参数表)。
30.在一个程序文件的开始,若需要使用一个包含命令包含一个头文件时,则命令标识符为(#include)。
31.在#include预处理命令中,不可以包含(目标文件)。
32.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据占用的字符位置个数为(6)。
33.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其小数部分占用的字符位置个数为(2)。
34.在printf()函数调用的格式字符串中,若使用格式符为“%6.2f”,则规定对应输出的数据中,其整数部分占用的字符位置个数为(3)。
35.在scanf()函数调用的格式字符串中,若使用格式符为“%f”,则对应输入的数据类型为(float)。
36.在scanf()函数调用的格式字符串中,若使用格式符为“%Lf”,则对应输入的数据类型为(double)。
37.每个C程序文件在编译时可能出现有严重性错误,其对应的标识符号为(error)。
38.在VC++环境下,为运行一个程序而建立的工作区文件的扩展名为(dsp)。
39.char类型的长度为(1)。
40.常数120的数据类型为(整型)。
41.一个无符号字符类型的值域范围是(0到255)。
42数值常量0x62的表示方式为(十六进制)。
43在C语言中,表示换行符的转义字符为(\n)。
44字符串"It\'s\'"中包含的字符个数为(5 )。
45执行“printf("%c",'B'+2);”语句后得到的输出结果为(D)。
46要定义a和b为两个整型变量,则使用的定义语句为(int a,b )。
47运算符优先级最高的是(++)。
48下列数值中最小值是(35%3)。
49已知x的初值为15,则下列各表达式中的最小值为(x/=2)。
50若x=5,y=10,则计算y*=++x表达式后,y的值为(60)。
51设x和y均为逻辑值,则x && y为真的条件是(它们均为真)。
52 x<=10的相反表达式为(x>10)。
53函数pow(4,3)的值为(64.0)。
54假定x=4.6,则函数floor(x)的值为(4.0)。
55正弦函数sin48在C语言的表示为(sin(48*3.14159/180))。
56 int类型的长度为(4)。
57常数-4.25的数据类型为(双精度型)。
58一个有符号字符类型的值域范围是(-128到+127)。
59字符串"Its\40\n"的长度为(5)。
60实数340.25对应的规格化浮点数为(3.4025e2)。
61要利用const保留字定义整型常量ABC的值为10,则对应的定义语句为(const int ABC=10)。
62要利用#define命令定义ABC常量的值为100,则对应的命令格式为(#define ABC==10)。
63下列数值中最大值是(28%8)。
64在下面运算符中,优先级最高的是(!)。
65设有语句序列为“int a=12; a+=a*a;”,则执行结束后,a的值为(156)。
66在C语言中,用于比较大小的关系运算符的总数为(6)。
67 x>0 && y<=5的相反表达式为(x<=0 || y>5)。
68假定x是一个逻辑量,则(x && !x)和(x || !x)的值分别为(0和1)。
69假定x=4.6,则函数ceil(x)的值为(5.0)。
70表达式floor(2.3457*100+0.5)/100的值为(2.35)。
71若x的值为5,则执行“if(x>10) x++; else x--;”语句后,x的值为(4)。
72若x的值为-10,则执行“if(x) x++; else x--;”语句后,x的值为(-9 )。
73在switch语句的每个case块中,假定都是以break语句结束的,则此switch语句容易被改写成语句(if)。
74每个C语言程序文件的编译错误的类型有()。
2. 在switch语句中,每个保留字case后面的表达式必须是()。
常量75当处理问题时的循环次数是确定的,则采用的最合适的循环方式为(for )。
76若需要定义一个符号常量,并且使C语言能够进行类型检查,则应在定义语句的开始使用保留字(const)。
77已知'A'~'Z'的ASCII码为65~90,当执行“int x='C'+5;”语句后x的值为(72)。
78每次先进行循环条件的判断,然后再执行循环体的语句为(for和while)。
79若n的值为5,s的值为0,则执行“while(n>0) s+=n--;”语句后,s的值为(15)。
80流程控制类语句包括的3类语句为(选择、循环、跳转)。
81若i的值为0,则执行“do i++; while(i*i<10);”语句的过程中,循环体被执行的次数为(4)。
82若要结束所在函数的执行过程,返回到调用该函数所在位置,则使用的语句为(return)。
83要结束所在循环语句中循环体的一次执行,则在其中使用的语句为(continue)。
84若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为(16)。
85若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为(-11)。
86若x的值为10,则执行“switch(x%3){case 0: x++; case 1:x++; case 2: x++;}”语句后,x的值为(12)。
87若x的值为10,则执行“switch(x%3){case 0: x++; break; case 1:x++; default: x++;}”语句后,x的值为(12)。
88若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为(1)。
89若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为(4)。
90若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为(n-1 )。
91若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,内层循环体S语句的执行总次数为(n(n+1)/2)。
92若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为(10 )。
93若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为(10 )。
94在下列的语句中,必须以分号作为结束的语句是(do )。
95若n的值为5,s的值为0,则执行“do s+=n--; while(n>0);”语句后,s的值为(15)。
96要结束任一种循环语句或switch语句的执行,则在其中使用的语句为(break)。
97在一个数组中,数组元素a[i]前面的元素个数为(i)。
98假定一维数组的定义为“char a[8];”,则该数组所占用的存储空间的字节数为(8)。
99假定有一个定义语句为“int a[10]={3,4,2,8,6};”,则元素a[3]的值为(8)。
100在下面字符数组的定义语句中,有语法错误的是(char a[10]='5')。
101假定有一个定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为(0)。
102假定二维数组的定义语句为“int* a[3][5];”,则该数组所占用的存储空间的字节数为(60)。
103使用“typedef int Integer;”语句把标识符Integer定义为一个(整数类型)。
104使用“typedef int ABC[10];”语句把标识符ABC定义为(整型数组类型)。