C语言考试试卷

合集下载

计算机C语言试卷含答案

计算机C语言试卷含答案

自信考试 诚信做人哈尔滨工业大学(威海)2011/2012学年春季学期C 语言程序设计 笔试试题(A 卷)题号 一二三四五六笔试(70%) 综合 (30%) 总分分数1. 笔试卷面总分100分,取卷面成绩的70%计入总分;2. 综合成绩为平时成绩(10%)和实验成绩(20%)之和,占总分的30%;3. 答题时禁止拆开试卷钉,试卷背面即为草稿纸;4. 答题时间120分钟。

一、单项选择题。

请把答案填入下面框中,不允许出框线。

(本题16分,每小题1分)题号 1 2 3 4 5 6 7 8 答案 题号 9 10 11 12 13 14 15 16 答案1.有以下定义:int a; long b; double x,y;则下列正确的是( )。

A) a%(int)(x-y) B) a=x!=y C) (a*y)%b D) y=x+y=x2. 以下C 语言标识符中,不合法的是( )。

A) _2 B) a_b C) a--b D) AaBc3. C 语言允许函数类型默认定义,此时该函数值隐含的类型是( )。

A) float B) int C) long D) double4. 若有定义 int (*p)[3];则下列说法正确的是( )。

A) 定义了基类型为int 的三个指针变量B) 定义了一个名为 *pt 、具有三个元素的整型数值C) 定义了一个名为pt 的指针变量,它可以指向每行有三个整数元素的二维数组D) 定义了基类型为int 的具有三个元素的整型数组号学名姓注意行为规范 遵守考试纪律自信考试诚信做人5.有以下程序#include <stdio.h>main(){int a=1,b=0;if(!a)b++;else if(a==0)if(a) b+=2;else b+=3;printf("%d\n",b);}则程序输出( )。

A) 0 B) 1 C) 2 D) 36.有以下程序段#include <stdio.h>main(){int x=10;while(x--);printf("x=%d\n",x);}则最后的输出结果是:( )。

C语言程序设计期末试题B及答案

C语言程序设计期末试题B及答案

C语言程序设计教程期末考试试卷(B卷)(考试时间90分钟,满分100分)一、选择题(每小题1分,共20分)下面各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂抹在答题卡相应的位置上,答在试卷上不得分。

1. 在C语言中,下列标识符中合法的是( )A. -intB. in1_3C. A_B!DD. const2. 不属于C语言基本数据类型的是( )A. intB. unionC. charD. unsigned3. 下面是对宏定义的描述。

不正确的是( )A. 宏不存在类型问题,宏名无类型,它的参数也无类型B. 宏替换不占用运行时间C. 宏替换只是字符串的简单替代D. 宏替换时先检查类型,类型一致时才可以替换4. C语言中,″\\xfds″在内存中占用的字节数是( )A. 3B. 4C. 5D. 65. 设int x;则执行printf(″%x\n″,~x^x);的结果是( )A. ffffffffB. ffC. 0D. 16. 对于while语句,错误的说法是( )A. 用条件控制循环体的执行次数B. 循环体至少要执行一次C. 循环体有可能一次也不执行D. 循环体中可以包含若干条语句7. 执行下列语句后输出的结果是( )int a=8,b=7,c=6;if(a<b)if(b>c){a=c;c=b;}printf("%d,%d,%d\n",a,b,c);A. 6,7,7B. 6,7,8C. 8,7,6D. 8,7,88. 设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( )A. 9,19B. 9,20C. 10,19D. 10,209. 设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( )A. x数组的长度等于y数组的长度B. x数组的长度大于y数组的长度C. x数组的长度少于y数组的长度D. x数组与y数组的存储区域相同10. 设int i,x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( )for(i=0;i<3;i++)printf(″%d″,x[i][2-i]);A. 147B. 159C. 357D. 36911. 执行完下列语句后,n的值是( )int n;for (n=0 ; n<100 ; n=2*n+1);A. 125B. 126C. 127D. 12812. 有以下语句:int a=6;a+=a-=a*a;printf(“%d”,a);输出结果( )A. –132B. –60C. -24D. 013. 为了连接两个字符串s1与s2,应当使用( )A. strcat( s1,s2 )B. strcpy( s1, s2 )C. strlen( s1, s2 )D. strcmp( s1, s2 )14. 设int a,*p;则语句p=&a;中的运算符“&”的含义是( )A. 位与运算B. 逻辑与运算C. 取指针内容D. 取变量地址15. 下面输出的结果为( )int a=13, b=64;printf(“%d\n”, !a || (b>>3) );A. 13B. 64C. 1D. 016. 下列定义正确的是( )A. enum t={a,b}x;B. enum t{1,2}x;C. enum {′+′,′-′}x;D. enum t{a,b}x;17. 设有定义:struct u{int a[4];float b[3]; char c[16];}aa;则printf(″%d\n″,sizeof(aa));的输出是( )A. 32B. 36C. 12D. 818. 数据-54.78在文本文件中占用的字节个数是( )A. 4B. 5C. 6D. 819. 在宏定义#define p(r) 3.14*r中,请问宏名是( )A. pB. p(r)C. 3.14*rD. p(r) 3.14*r20. 要打开一个已存在的用于修改的非空二进制文件“hello.txt”,正确语句是( )A. fp=fopen( "hello.txt ","r" )B. fp=fopen( "hello.txt ","ab+" )C. fp=fopen( "hello.txt ","w" )D. fp=fopen( "hello.txt ","r+" )二、填空题(每小题4分,共36分)请将每一个空的正确答案写在答题卡相对应的横线上,答在试卷上不得分。

(完整版)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语言程序设计考试试卷(附答案)第一部分:选择题(共40题,每题2分,总分80分)1. 下列哪个关键字用于定义常量?A. constB. intC. staticD. volatile2. 在C语言中,以下哪个运算符用于将一个整数转换为浮点数?A. *B. /C. %D. +3. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int x = 2, y = 3;printf("%d", x++ * ++y);}```A. 7B. 8C. 9D. 104. C语言中,以下哪个运算符用于从一个整数中提取指定位数的值?A. <<B. >>C. |D. &5. 下列代码的输出结果是什么?```c#include <stdio.h>void main() {int arr[] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *ptr);}```A. 1B. 2C. 3D. 4......40. 下列关于结构体的说法中,错误的是:A. 结构体可以包含不同类型的成员变量B. 结构体可以作为函数参数和返回值C. 结构体可以使用“->”来访问成员变量D. 结构体可以使用“sizeof()”函数获取其大小第二部分:填空题(共10题,每题4分,总分40分)1. 以下是有效的C语言标识符:___hello___2. 下列代码的运行结果是:___88___```c#include <stdio.h>void main() {int x = 8;printf("%d", x++);}```3. 在C语言中,以下是有效的声明:___int i, *p;___4. 下列代码的输出结果是:___10___```c#include <stdio.h>void main() {int arr[5] = {1, 2, 3, 4, 5};int *ptr = arr + 2;printf("%d", *(ptr + 2));}```5. 在C语言中,以下是合法的函数声明:___void fun(int x, float y);___......第三部分:编程题(共3题,每题20分,总分60分)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语言试卷(含答案)

一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5;while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

C语言试卷(含答案)

C语言试卷(含答案)

C语言试卷(含答案)一、单项选择题(每小题2分,共40分)1、sizeof(float)是()A. 一个双精度型表达式B. 一个整型表达式C. 一种函数调用D. 一个不合法的表达式2、设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值: scanf("i=%d,f=%f",&i,&f);为了把100和分别赋给i和f,则正确的输入为()。

A. 100B. i=100,f=765.12C. 100<回车>D. x=100y=3、#include<>voidmain(){inta=3,b=2,c=1;intx=10,y=20;if(a<b)< p="">if(b!=0)if(!x)y=1;elseif(x)y=0;y=-1;printf("%d",y);}上面的C程序的输出结果是()。

A. 20B. 1C. 0D. -14、C语言中,while和do…while循环的主要区别是()。

A. do…while的循环体至少无条件执行一次B. while的循环控制条件比do…while的循环控制条件严格C. do…while允许从外部转到循环体内D. do…while的循环体不能是复合语句5、执行下面的C程序段后,输出结果是()。

inta=5; while(a--);printf("%d",a);A. 54321B. 4321C. 0D. -16、在C语言中,()是在所有函数外部声明的。

A. 全局变量B. 局部变量C. 形参D.实参7、分析下面的C程序:#include<>voidmain(){intnum=0;while(num<=2){num++;printf("%d",num);}}输出结果是()。

A. 123B. 012C. 23D. 128、下面的C语言代码段的输出结果是()。

C语言试卷1(含答案)

C语言试卷1(含答案)
else j=i;
putchar (j);
}
3、下面的函数功能是求x的y次方。
double fun(double x,int y)
{ int i;
double z=1;
for(i=1;i<=y;i++)
z=z*x;
return z;
}
4、先为数组a输满数据,再为x输入一个数据,在数组a中找出第一个与x相等的元素并将下标输出,若不存在这样的元素,则打印”Not found!”标志。
printf("\"%s\"\n",ch[1]);
}
A. "AAAA"B. "BBB"C. "BBBCC"D. "CC"
9.在C语言中,形参的缺省存储类是。
A. autoB. registerC. staticD. extern
10.以下程序的输出结果是。
main()
{ char x=040;
printf("%0\n",x<<1);
27.对break语句和continue语句,下面说法不正确的是。
A.break语句强制中断当前循环,退出循环体
B.break语句只能用在三条循环语句的循环体或switch语句中
C. 在没有循环情况下,continue语句能用在switch语句中
D.continue语句不能退出循环体
28.c语言允许if-else语句可以嵌套使用,规定else总是与配对。
A.&aa[0]+1B.&aa[1]C..&aa[0]++D. aa+1

C语言试卷

C语言试卷
C、int b[][4]={{1,2},{3,4,5},{6}}; D、int b[3][2]={(1,2),(3,4),(5,6)};
22、下列关于字符串的叙述中正确的是()。(1分)
A、C语言中有字符串类型的常量和变量 B、两个字符串中的字符个数相同时才能进行字符串大小的比较
C、可以用关系运算符对字符串的大小进行比较 D、空串一定比空格打头的字符串小
A、year=1984; B、birth.year=1984; month=11; birth.month=11;day=11; birth.day=11;
C、s.year=1984; D、s.birth.year=1984;s.month=11; s.birth.month=11;s.day=11; s.birth.day=11;
35、若执行fopen函数时发生错误,则函数的返回值是()(1分)
A、地址值 B、0
C、1 D、EOF
36、已知学生记录描述为 struct student {int no; char name[20]; char sex; struct {int year; int month; int day;}birth;}; struct student s; 设变量s中的“生日”应该是“1984年11月11日”,下列对“生日”的正确赋值方式是( )。(2分)
17、若a=3,b=4,c=5,d=6,则条件表达式a<b?a:c<d?c:d的值是()。(1分)
A、4 B、3
C、2 D、1
18、下列关于逻辑运算符两侧运算对象的叙述中正确的是()。(1分)
A、只能是整数0或1 B、只能是整数0或非0
C、可以是结构体类型的数据 D、可以是任意合法的表达式

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1)1.以下叙述中正确的是()。

A.C语言比其他语言高级B.C语言可以不用编译就能被计算机识别执行C.C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D.C语言出现的最晚,具有其他语言的一切优点2.以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C.main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3.以下叙述中正确的是()。

A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分4.以下有关for循环的正确描述是()。

A.for循环只能用于循环次数已经确定的情况B.for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D.for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5.对下面程序段的描述,正确的是()。

x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行一次C.循环执行两次D.有语法错误6.以下有关C语言数组说法正确的是()。

A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。

A.inta(20);B.inta[]={1,2,5,7,0};C.inta[n];D.inta[2]={1,2,4,6};8.在定义intb[2][10];之后,对b数组元素引用正确的是()。

A.b[0][9]B.b[2,3]C.b(1)(5)D.b[10][0]9.如有定义语句intc[]={1,5,3,4,6,7,0};,则数组c有()个元素。

c语言试卷(含答案)

c语言试卷(含答案)

一、选择题(26分)1. 正确的C语言标识符是(A)。

A._buy_2 B.2_buy C.?_buy D.buy?2. 以下选项中,合法转义字符的选项是(A)。

A.’\\’ B.’\018’ C.’xcb’ D.’\ab3、下列语句中,错误的是(B )A、#define PI 3.14159B、#include <math.h>;C、if(2);D、for(;;) if(1) break;4、能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()A、 a>=10 or a<=0B、 a>=0|a<=10C、 a>=10 &&a<=0D、 a>=10‖a<=05、以下对break语句使用的正确描述是()A、可以出现在程序中的任何位置B、只能出现在循环结构中或switch结构中C、只能出现在switch结构中D、只能出现在循环结构中6. C语言程序的基本单位是(C)。

A.程序行 B.语句 C.函数 D.字符7、已知各变量的类型说明如下:()int m=6,n, a, b;unsigned long w=8;double x=3.14, y=0.12;则以下符合C语言语法的表达式是(A)。

A.a+=a-=(b=2)*(a=8) B. n=n*3=18C.x%3 D.y=float (m)8、已有定义:char x[]=“ab”,y[ ]={‘a’,’b’ };,以下叙述中正确的是( C)A、数组x和y的长度相同B、x数组长度小于y数组长度C、x数组长度大于y数组长度D、上述说法都不对9、设有定义“int x=3,y,*p=&x”,则下列语句中使y不为3的语句是(D )A、y=*&xB、y=*pC、y=xD、y=&x10、设x、y、z均为int型变量,则执行语句:x=y=3;z=++x||++y;后,y的值为()A、不定值B、4C、3D、111.有如下程序段:int x1,x2;char y1,y2;scanf(”%d%c%d%c”,&x1,&y1,&x2,&y2);若要求x1、x2、y1、y2的值分别为10、20、A、B,正确的数据输入是(A)。

C语言试卷及答案

C语言试卷及答案

for(i=0;c=s[i];i++)
if(c==’’) word=0;
else if(word==0)
{word=1;num++;}
printf(“%d\n”,num);
}
(A)2 (B)3 (C)4 (D)5
33.以下程序运行结果是 A

#include<string.h>
main() {char s[50]=”1234567”,*p=s; int i; i=*(p+5)-*(p+2); printf(“%d\n”,i*strlen(s)); }
(A)double (B)char (C)int (D)float
10. C 语言中要求操作数必须是整数的运算符是 B

(A)/ (B)%
(C)!= (D)=
11.用 scanf(“%d,%d”,&a,&b)输入数据时,下面输入法中正确的是 A 。
(A)123,4 (B)123 4 (C)123;4 (D)
(C)C 语言本是没有输入输出语句。
(D)在对一个 C 程序进行编译的过程中,可发现注释中的拼写错误。
4.以下叙述不正确的是 D

(A)逗号运算符的运算级最低。
(B)ABC 和 abc 是两个不同的变量。
(C)若 a 和 b 类型相同,在执行 a=b 后,b 的自身值不变。
(D)‘a’和“a”是完全等价的常量。
(A)for(i=1,p=1;i<=5;i++) p*=i;
(B)for(i=1;i<=5;) { p=1;p*=i;i++;}
(C)i=1;p=1;while(i<=5) { p*=i;i++;}

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案)

C语言程序设计考试试题(附答案) C语言程序设计考试试题(附答案)一、选择题(共30题,每题2分,共60分)1. 下列哪个是C语言关键字?A. printB. variableC. whileD. calculate答案:C2. 在C语言中,下列哪个是合法的变量名?A. 1_helloB. _worldC. v-ariableD. continue答案:B3. 下列哪个是正确的C语言注释方式?A. // This is a commentB. # This is a commentC. /* This is a comment */D. <!-- This is a comment -->答案:C4. 下列哪个是正确的C语言函数定义格式?A. void addNumbers()B. addNumbers()C. function addNumbers()D. int addNumbers()答案:D5. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;float result = x / y;printf("%f", result);return 0;}```A. 2.5B. 2C. 2.000000D. 5答案:B6. 在C语言中,下列哪个是正确的if语句格式?A. if (x > 4) thenB. if (x > 4) { }C. if x > 4D. if (x > 4)答案:D7. 下列哪个是C语言中的逻辑运算符?A. ++B. &&C. %D. =答案:B8. 在C语言中,下列哪个是正确的for循环格式?A. for (x = 0; x < 5)B. for {x = 0; x < 5; x++}C. for (int x = 0; x < 5; x++)D. for (x = 0; x < 5;)答案:C9. 下列哪个是C语言中的自增运算符?A. ++B. +=C. =D. --答案:A10. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;x *= 3 + 4;printf("%d", x);return 0;}```A. 14B. 20C. 21D. 22答案:C11. 在C语言中,下列哪个是正确的switch语句格式?A. switch (x) {case 1;case 2;break;default;break;}B. switch (x) {case 1:case 2:break;default:break;}C. switch (x) case 1:case 2:break;default:break; D. switch (x) { case 1,case 2,break,default,break,}答案:B12. 下列哪个是C语言中的逗号运算符?A. &&B. !C. ,D. |答案:C13. 在C语言中,下列哪个是正确的数组声明?A. array[5]B. [5] arrayC. array[] = [5]D. int array[5]答案:D14. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 0; i <= 5; i++){printf("%d ", i);if (i == 3)continue;}return 0;}```A. 0 1 2 3 4 5B. 0 1 2 3 4C. 0 1 2 3 4 5 6D. 0 1 2 4 5答案:A15. 下列哪个是C语言中的求余运算符?A. /B. +C. %D. *答案:C16. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 4;int y = 5;if (x > 2 || y < 10){printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 || y < 10D. 4 5答案:A17. 在C语言中,下列哪个是正确的do-while循环格式?A. do (x < 5)B. do {x < 5} whileC. do {x < 5} while (x++)D. do {x < 5;} while (x < 5)答案:D18. 下列哪个是C语言中的逻辑非运算符?A. !B. &&C. <D. =答案:A19. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int i;for (i = 1; i <= 10; i++){if (i % 2 == 0)continue;printf("%d ", i);}return 0;}```A. 1 2 3 4 5 6 7 8 9 10B. 1 3 5 7 9C. 2 4 6 8 10D. 1 2 4 8答案:B20. 下列哪个是C语言中的减法运算符?B. +C. -D. *答案:C21. 在C语言中,下列哪个是正确的数组初始化方式?A. int array[5] = {1, 2, 3}B. array[5] = {1, 2, 3}C. int array[] = {1, 2, 3}D. int array[5] = {1, 2, 3,}答案:C22. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 7;if (x > 2 && y < 10)printf("True");}else{printf("False");}return 0;}```A. TrueB. FalseC. x > 2 & y < 10D. x > 2 || y < 10答案:A23. 下列哪个是C语言中的除法运算符?A. /B. +C. %答案:A24. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 7;int y = (x > 5) ? 10 : 5;printf("%d", y);return 0;}```A. 7B. 5C. 10D. 15答案:C25. 在C语言中,下列哪个是正确的while循环格式?A. while (x < 5;)B. while {x < 5;}C. while (x < 5)D. while {x < 5}答案:C26. 下列哪个是C语言中的位运算符?A. ||B. &&C. !D. &答案:D27. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 2;int y = 3;if (x = y){printf("Equal");}else{printf("Not equal");}return 0;}```A. EqualB. Not equalC. 2D. 3答案:A28. 在C语言中,下列哪个是正确的goto语句格式?A. goto label;B. goto (label);C. gote labelD. go to label答案:A29. 下列哪个是C语言中的加法运算符?A. /B. +C. %D. *答案:B30. 执行下面的C语言代码,输出的结果是什么?```c#include <stdio.h>int main(){int x = 5;int y = 2;int result = x % y;printf("%d", result);return 0;}A. 2B. 1C. 3D. 0答案:B二、编程题31. 编写一个C语言程序,在屏幕上输出从1到100的所有偶数。

c语言期末试卷B卷(附答案)

c语言期末试卷B卷(附答案)

c语言期末试卷B卷(附答案)一、单项选择题(每小题2分,共30分)1.下列关于C语言用户标识符的叙述中正确的是(B)(A)用户标识符中可以出现在下划线和中划线(减号)(B)用户标识符中不可以出现中划线,但可以出现下划线(C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头(D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头2.在C语言中,合法的字符常量是(A)(A)’\\087’(B)’\\某43’(C)’abe’(D)”\\0”3.某、y、z被定义为int型变量,若从键盘给某、y、z输入数据,正确的输入语句是(B)(A)INPUT某、y、z;B)canf(“%d%d%d”,&某,&y,(C)canf(“%d%d%d”,某,y,z);(D)(canf(“%d%d%d”,&某,y,&z);4.若整型变量a、b、c、d中的值依次为:1、4、3、2。

则条件表达式a(A)1(B)2(C)3(D)45.设有:inta=3,b=2,c=6,d=4,m=2,n=3;执行((m=a>b)||(n=c>d))后n的值为(B)(A)0(B)1(C)2(D)36.若a为int类型,且其值为3,则执行完a某=a+=a某a;后,a的值是(D)(A)–3(B)9(C)–12(D)1447.设inta=12,b=8;则a/b的结果为:(B)(A)1.5(B)1(C)3/2(D)28.若定义:inta=511,某b=&a;则printf(\的输出结果为(D)(A)无确定值(B)a的地址(C)512(D)5119.在C语言中,引用数组元素时,其数组下标的数据类型允许是(C)(A)整型常量(B)整型表达式(C)整型常量或整型表达式(D)任何类型的表达式10.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(B)(A)地址传递(B)单向值传递(C)由实参传给形参,再由形参传回实参(D)传递方式由用户指定11.数字字符0的ASCII值为48,若有以下程序main(){chara='1',b='2';printf(\printf(\}程序运行后的输出结果是(A)(A)3,2(B)50,2(C)2,2(D)2,5012.以下函数值的类型是(D)fun(float某){floaty;y=3某某-4;returny;}(A)int(B)不确定(C)void(D)float13.以下能正确定义一维数组的选项是(B)(A)inta[5]={0,1,2,3,4,5};(B)inta[]={0,1,2,3,4,5};(C)chara={' A','B','C'};(D)inta[5]=\14.有以下程序,结果为:(D)main(){inta[5]={1,2,3,4,5};int某pa=&a[1];printf(“%d”,pa[2]);}(A)3(B)4(C)5(D)215.假设tructtudent{intnum;floatcore;}tu1;则下列赋值语句中正确的是(C)(A)tudent.core=85;(B)tudent={1001,95};(C)tu1.num=1001;(D)tu1 ->num=1001;二、判断题(对的打“√”,错的打“某”,每小题1分,共10分)1.定义一个函数包括数据说明部分和执行语句部分,两者可以交叉出现。

C语言期末考试试卷附参考答案

C语言期末考试试卷附参考答案

一、单项选择题(请将答案填在下面表格中20×1)1. 以下叙述中正确的是()。

A. C语言比其他语言高级B. C语言可以不用编译就能被计算机识别执行C. C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D. C语言出现的最晚,具有其他语言的一切优点2. 以下叙述中正确的是()。

A.构成C程序的基本单位是函数B.可在一个函数中定义另一个函数C. main函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义3. 以下叙述中正确的是()。

A. C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分4. 以下有关for循环的正确描述是()。

A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判断表达式C.在for循环中,不能用break语句跳出循环体D. for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来5. 对下面程序段的描述,正确的是()。

x=-1;do{x=x*x;}while(!x);A.是死循环B. 循环执行一次C. 循环执行两次D. 有语法错误6. 以下有关C语言数组说法正确的是()。

A.数组元素的数据类型可以不一致B.数组元素的个数可以不确定,允许随机变动C.可以使用动态内存分配技术,定义元素个数可变的数组D.定义一个数组后,就确定了它所容纳的具有相同数据类型元素的个数7.以下数组定义正确的是()。

A. int a(20);B. int a[ ]={1,2,5,7,0};C. int a[n];D. int a[2]={1,2,4,6};8.在定义int b[2][10];之后,对b数组元素引用正确的是( )。

A. b[0][9]B. b[2,3]C. b(1)(5)D. b[10] [0]9. 如有定义语句int c[ ]={1,5,3,4,6,7,0};,则数组c有()个元素。

C语言期末试卷

C语言期末试卷
A、do while循环的循环体不能是复合语句 B、do while循环允许从循环体外转到循环体内
C、while循环的循环体至少被执行一次 D、do while循环的循环体至少被执行一次
19、若有定义char str[]= “very good”,则str的长度为( )。(1分)
A、8 B、9
27、复合语句中定义的变量的作用范围是()(1分)
A、整个源文件 B、整个函数
C、整个程序 D、所定义的复合语句
28、设已有定义:float x;,则下列对指针变量p进行定义且赋初值的语句中正确的是( )。(1分)
A、float *p=1024; B、int *p=(float)x;
C、定义数组长度时可以用常量或变量 D、可以作参数传递
23、若有说明:int a[][3]={0,0};则不正确的叙述是( )。(1分)
A、数组a的每个元素的初值都是0 B、数组a的第一维大小为1
C、数组a的行数为1 D、只有元素a[0][0]和a[0][1]初值为0,其余元素得不到初值0
A、if(x++) ; B、if(x>y&&y!=0)
C、if (x>0) x-- else y++ D、if (y<0){;} else x++;
15、在嵌套使用if语句时,C语言规定else总是()。(1分)
A、和之前与其具有相同缩进位置的if配对 B、和之前与其最近的if配对
A、自动(auto) B、静态(static)
C、外部(extern) D、寄存器(register)
26、下述函数定义形式正确的是()(1分)

2024年6月青少年软件编程C语言等级考试试卷二级真题

2024年6月青少年软件编程C语言等级考试试卷二级真题

2024年6月青少年软件编程C语言等级考试试卷二级真题分数:100 题数:51.冠军魔术(20分)。

2018年FISM(世界魔术大会)近景总冠军简纶廷的表演中有一个情节:以桌面上一根带子为界,当他将纸牌从带子的一边推到另一边时,纸牌会变成硬币;把硬币推回另一边会变成纸牌。

这里我们假设纸牌会变成等量的硬币,而硬币变成纸牌时,纸牌的数量会加倍。

那么给定纸牌的初始数量,当他来回推了N次(来/回各算一次)后,手里拿的是纸牌还是硬币?数量是多少?输入:输入在一行里给出两个正整数,分别是纸牌的初始数量和魔术师推送的次数。

这里假设初始状态下魔术师手里全是纸牌。

输出:如果最后魔术师手里是纸牌,输出0和纸牌数量;如果是硬币,则输出1和硬币数量。

数字间须有1个空格。

题目保证结果数值不超出整型范围(即231-1)。

2.找座位(20分)。

组织一场考试时,监考老师手里会有一份签到表,按座位号的顺序列出学生。

但学生要根据这份表找到自己的座位编号就很麻烦了。

本题就要求你编写程序,帮助学生快速找到他们的座位号。

输入:输入第一行给出一个不超过103的正整数N,是参加考试的学生数。

以下N行,第i行给出座位号为i的学生的学号(i=1,……, N)。

学号是一个不超过8位、完全由数字组成的字符串。

输入保证每个学生只分配一个座位。

接下来一行给出一个不超过105的正整数M,是待查询的学生数。

以下M行,每行给出一个待查询的学生的学号。

输出:对每一个待查询的学生,如果他在考场里有座位,则在一行中输出其座位号;否则输出“NA”(Not Available的缩写),表示座位号不存在。

3.英语老师小助手(20分)。

英语老师要求学生按照如下规则写一串字母:规则1,如果写了某个大写字母,下一个就必须写同个字母的小写,或者写字母表中前一个字母的大写。

规则2,如果写了某个小写字母,下一个就必须写同个字母的大写,或者写字母表中下一个字母的小写。

例如“zZzZYXWwxyYX”就是一个合法的字母串;而“wVUuvUTsR”就是非法的。

C语言程序设计考试试卷附答案

C语言程序设计考试试卷附答案

C语言程序设计考试试卷附答案一、选择题1. 下列哪个不是 C 语言的数据类型?A. intB. charC. stringD. float答案:C2. 以下哪个关键字用于定义常量?A. constantB. varC. constD. define答案:C3. 在 C 语言的数组中,下标是从几开始的?A. 0B. 1C. -1D. 从任意整数开始答案:A4. 下面哪个运算符用于获取变量的地址?A. &B. *C. %D. #答案:A5. 下面的代码中,输出的结果是什么?```int i = 0;for (i = 0; i < 5; i++) {if (i == 3) {break;}printf("%d ", i);}```A. 0 1 2C. 0 1 2 3 4D. 0 1 2 4答案:A二、填空题1. 填写下面代码的输出结果:```char str[20] = "Hello";printf("%s", ___________);```答案:Hello2. 填写下面代码的输出结果:```int a = 10;int b = 20;int c = ___________;printf("%d", c);```三、编程题1. 编写一个程序,在屏幕上输出从 1 到 10 的所有数字。

答案:```c#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}return 0;}```2. 编写一个程序,计算从 1 到 100 所有偶数的和。

答案:```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1 到 100 所有偶数的和为:%d", sum);return 0;}```3. 编写一个程序,实现冒泡排序算法对数组进行升序排序。

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

二级 C语言考试试卷(考试说明及第一部分计算机基础知识略)第二部分 C语言程序设计一、选择题(用答题卡答题,答案依次填在21~30答题号内)21. 若有声明语句char s1[10]={0},s2[10]= "books";则能将字符串"books"赋给数组s1保存的表达式是21 。

A. s1=”books”;B. strcpy(s2,s1);C. s1=s2;D. strcat(s1,s2);22. 表达式(a=4*5,b=a*2),b-a,a+=2的值是22 。

A.2 B. 20 C. 22 D. 4223. 以下是一个自定义函数的头部,其中正确的是23 。

A. int fun(int a[ ],b)B. int fun(int a[ ],int a)C. int fun(int * a,int b)D. int fun(char a[ ][ ],int b)24. 以下数组声明语句中正确的是24 。

A.int n,a[n]; B. int a[ ];C. int a[2][3]={{1},{2},{3}};D. int a[ ][3]={{1},{2},{3}};25.已知在某C语言编译系统中表达式sizeof(int)的值是2,如果希望将常量-70000正确地保存在一个变量a中,该变量声明语句应当是25 。

A.int a; B. long int a;C. unsigned int a;D. unsigned long int a;26. 以下声明语句中,用于声明一个行指针变量的是26 。

A. int *p(int);B. int *p;C.int (*p)[3]; D. int (*p)(int);27. 已知A盘根目录下的一个文本数据文件data.dat中存储了100个int型数据,若需要修改该文件中已经存在的若干个数据的值,只能调用依次fopen函数,已有声明语句FILE*fp;则fopen函数的正确调用形式是27 。

A. fp=fopen(”A:\\dAtA.dAt”,”r+”);B. fp=fopen(”A:\\data.d At”,”w+”);C. fp=fopen(”A:\\dAtA.dAt”,”A+”); d. fp=fopen(”A:\\dAtA.dAt”,”w”);28. 在以下程序中,需要在fun函数中声明一个int型的变量,以下选项中28 不能用作该变量的名字。

A.x B. y C. fabs D. fun#include<math.h>int y;main( ){int a=1;fun(a);}int fun(int x){ ;/* int型变量声明语句位置*/…/*若干执行语句*/}29.如有语句:int x,y=0,z,* p[3];p[0]=&x;p[1]=&y;p[2]=&z;以下表达式中有语法错误的是29 。

A.y++ B. p++ C. *++p[0] D. (*p[0])++30. 设有声明语句:int a[3][3]={1,2,3,4,5,6,7,8,9};以下语句中除30 外均能输出a[1][2]的值。

A.printf(“%d”,*(*(A+1)+2)); b. printf(“%d”,*(&A[2][0]-1));C. printf(“%d”,*(A[1]+2)); d. printf(“%d”,*(A+1)[2]);二、填空题(将答案填写在答题纸的响应答题号内,每个答案只占一行)基本概念题(共5分)1.只能在循环体中出现的语句是(1)语句。

2.& 既可以用作单目运算符也可以用作双目运算符,其中用作单目运算符时表示的功能是(2)。

3.包含二目运算符的表达式可一般的表示为(x)op(y),其中op代表运算符x、y代表操作数。

若op 是“+”运算符,且x和y均为常量时,不能同时为(3)常量。

4.当(4)语句被执行时,程序的执行流程无条件地从一个函数跳转到另一个函数。

5.在函数内部声明局部变量时缺省了存储类型,该变量存储类型为(5)。

阅读程序写出运行结果题(共10分)6.以下程序段运行后,x、y、z的值分别是(6)。

int x=0,y=3,z=2;if(x++&&y++)z--;else if(x+1==6||y--)z++;7. 设有以下宏定义:#define N3#define Y(n) ((N+1)* n)则执行语句z=2 * (N+Y(5+1));后,z的值为(7)。

8.[程序]int x=1;main( ){ int y,k;y=f(3);printf(“%d\n%d”,x,y);}int f(int x){ if(x==3){ int x=2;return x;}else return x;该程序运行后,输出x 的值是(8),y的值是(9)。

9.[程序]main(){int a[3][3]={1,2,3,4,5,6,7,8,9},m,k,t;for(m=0;m<3;m++)for(k=0;k<=m;k++)if((m+k)%2) t=a[m][k],a[m][k]=a[k][m],a[k][m]=t; for(m=0;m<3;m++){ for(k=0;k<3;k++)printf(“%d”,A[m][k]);printf(“\n”);}}该程序执行时输出第一行是(10),第二行是(11)。

10.[程序]#include<string,h>int convert(char s1[ ],char s2[ ],int *n1){ int i=0,j=0,k,s=0,len;int value=0;ChAr tAb[16]=”0123456789AbCdef”;len = strlen(s1);if(len%4){ for(i=0;i<len%4;i++)s=s*2+s1[i]-‘0’;s2[j++]=tab[s];value=value*16+s;while(i<len){ s=0;for=(k=0;k<4;k++) s=s*2+s1[i+k]-‘0’;s2[j++]=tab[s];value=value*16+s;i=r+4;s2[j]=’\0’;* n1=strlen(s2);return value;}main( ){ ChAr ss1[ ]=”1001010”,ss2[10];int x,y;y=convert(ss1,ss2,&x);printf(“%d\n%d\n%s”,x,y,ss2);}该程序执行时输出第一行是(12),第二行是(13),第三行是(14)。

11.[程序]main( ){ int a[3][3],i,j;numlist(&a[0][0],9);for(I=0;I<3;I++){ for(j=0;j<3;j++)printf(“%d”,A[i][j]);printf(“\n”);}}numlist(int *p,int n){ int i;for(i=0;i<n;i++) p[i]=num(i);}num(int n){ if(n==0)return 1;return num(n-1)*2+1;}程序执行时输出的第一行是(15)。

完善程序题(共15分)12.程序功能:合并两个已经按照升序排列的一维数组。

Insert函数功能:将m插入x指向的含有n个元素的数组中,数组中n个元素已按升序排列,插入m后的n+1个元素仍保持有序。

void insert(int x[ ],int n,int m);main( ){ int a[10]={1,3,5,7,9},b[5]={2,4,8,16,32},k;for(k=0;k<5;k++){ insert(a, (16) ,b[k]);}for(k=0;k<10;k++)printf("%d",a[k]);}void insert(int x[],int n,int m){int i,j;if(m>x[n-1])(17) =m;else{for (i=; (18) ;i++);for(j=n;j>=i;j--)x[j]= (19) ;x[i]=m;}}13 程序功能:查找满足下列条件的m,n值。

给定正整数k,0<m<=k,0<n<=k,求使(n^2-mn-m^2)^2=1 且使n^2+m^2的值达到最大的值。

# include<stdio.h>main( ){ long m,n,k,s,flag=0;printf("input k:");scanf("%ld",&k);n=k;do{ m=_(20)_;do{ s=n*(n-m)-m*m;if(s*s==1) (21);else m--;} while(m>0&&! flag);if(m==0) (22);}while(n>0&&! flag);printf("m=%ld,n=%ld",m,n);}14 已知链表中结点的数据结构定义如下:# include<stdio.h>struct node{ int x;struce node *next;};函数loop功能:根据dir的值循环移位head指向的链表中的所有结点,当dir为正整数时实现循环右移一次,否则循环左移一次。

函数返回链表首结点的指针。

例如,移位前的链表数据:head->1->3->5->4。

右移一次后的链表数据:head->4->1->3->5。

算法提示:循环右移时,将链表最后一个结点删除,再将其插入到链表首部;循环左移时,将链表的第一个结点删除,再将其连接到链表尾部。

struct node *loop(struce node *head,int dir){ struct *p1,*p2;p1=head;if(p1==null||p1->next==null) return head;if(dir>=0){while(p1->next){ p2=p1;p1=p1->next;}(23)= null;p1->next= (24);head=p1;}else{ head= (25);p2=head;while(p2->next)p2=p2->next;(26);p1->next=null;}return head;}15 程序功能:在一行文本中查找给定的单词。

相关文档
最新文档