c语言试卷

合集下载

C语言试卷及答案

C语言试卷及答案

一、选择题。

(每空2分,共计40分)本试卷包括第一卷和第二卷,答卷时间总共120分钟)第一卷第一部分:基础知识(20项,共40分)1.一个C语言程序是由(C )组成的。

A.主程序B.子程序C.函数D.过程2.转换说明符%x的输出形式是(C )。

A.十进制B.八进制C.十六进制D.二进制3.若a、b均为int型变量,且a=100,则关于循环语句for(b=100;a!=b;++a,++b)printf ( “------------“) ;的正确说法是(C )。

A.循环体只执行一次B.死循环C.循环体一次也不执行D.输出----------- 4.若x、y、z均为int 型变量,则执行下列语句后的z值为( A )。

x=1; y=2; z=3; z=(x>y)?z :y ; z = (z<y)?z:x;A.1 B.4 C.2 D.35.下面标识符中,合法的用户标识符为(D )。

A.P#Ad B.12a C.char D._int6.‘A’+ 3 的结果是( B )。

A.’A’B.’D’的ASCⅡ码C.65 D.3 7.语句char str[20];说明str是一个字符串,最多能表示( B )。

A.20个字符B.19个字符C.18个字符D.21个字符8.将int 型变量n转换成float型变量的方法是( B )。

A.float n B.(float)n C.float(n) D.21个字符9.以下不正确的描述是( C )。

A.使用while和do-while循环时,循环变量初始化的操作应在循环语句之前完成B.while循环是先判断表达式后执行循环体语句C.do-while和for循环均是先执行循环体语句,后判断表达式D.for、while、do-while循环中的循环体均可以由空语句构成10.在循环中使用break 语句的功能是( A )。

A.使程序的执行跳出break所在的那一重循环B.使程序执行结束C.跳出包含此break语句的所有循环D.终止本次循环,继续下次循环11.下面是一个初始化指针的语句:int *px = &a;其中指针变量的名字应该是(C )。

C语言试卷

C语言试卷

C语言试卷1. 以下不是C语言的特点的是 ( B D )。

[单选题] *A.(正确答案)C语言简洁、紧凑D. C语言移植性好2. 以下不正确的C语言标识符是()。

[单选题] *A. ABCB. AbcC. a_bcD. ab.c(正确答案)3. 3.C语言规定,函数返回值的类型由()所决定。

[单选题] * A.return语句中的表达式类型B.调用该函数时的主调函数类型C.调用该函数时的形参类型D.在定义该函数时所指定的函数类型(正确答案)4. C程序由()组成。

[单选题] *A.子程序B.主程序和子程序C.函数(正确答案)D.过程5. 设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为()。

[单选题] *A. intB. FloatC. double(正确答案)D. 不确定6. 在C语言中,char型数据在内存中的存储形式是()。

[单选题] *A. 补码B. 反码C. 源码D. ASCII码(正确答案)7. 有如下程序,输入数据:12345M678<cR>后( [单选题] *#includemain(){int x;float y;scanf("%3d%f",&x,&y);}A. 12345B. 123C. 运行错误(正确答案)D. 3458. 若有以下定义int a,b; float x,则正确的赋值语句是()。

[单选题] *A. a=1,b=2C. a=b=5;(正确答案)D. b=int(x);9. 以下程序的执行结果是()。

[单选题] *#include{int i=10,j=10;printf("%d,%d\n",++i,j--);}A. 11,10(正确答案)B. 9,10C. 11,9D. 10,910. 已知字母A的ASCII码是65,以下程序的执行结果是()。

[单选题] * #includemain(){char c1='A',c2='Y';printf("%d,%d\n",c1,c2);A. A,YB. 65,65C. 65,90D. 65,89(正确答案)11. 下列运算符中优先级最高的是()。

(完整版)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语言试卷01

C语言试卷01

C语言试题(一)1.下列关于C语言用户标识符的叙述中正确的是______。

A. 用户标识符中可以出现下划线和中划线(减号)B. 用户标识符中不可以出现中划线,但可以出现下划线C. 用户标识符中可以出现下划线,但不可以放在用户标识符的开头D. 用户标识符中可以出现下划线和数字,它们都可以放在用户标识符的开头2.以下叙述不正确的是A. 一个C源程序可由一个或多个函数组成B. 一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D. 在C程序中,注释说明只能位于一条语句的后面3.下面能正确进行字符串赋值操作的语句是A.char s[5]={"ABCDE"};B.chars[5]={'A','B','C','D','E'};C.char *s;s="ABCDEF";D.char *s; scanf("%s",s);4.下列叙述中正确的是A. C语言编译时不检查语法B. C语言的子程序有过程和函数两种C. C语言的函数可以嵌套定义D. C语言的函数可以嵌套调用5.以下程序输出的结果是____。

main( ){ float a=5,b=4,d;d=(a>b);printf("%d\n",d);}A. 1B. 0C. 1.0D. 46.设int a=5,b=6,表达式(b--==6)?++a:--b的值是___A. 5B. 6C. 7D. 47.设i,j,k均为int型变量,则执行完下面的for语句后,k的值为___ 。

for(i=0, j=10; j>=i; i++, j--)k=i+j;A. 10B. 20C. 8D. 08.能正确表示逻辑关系:"1≤a≤9"的C语言表达式是A. a>=1 or a<=9B. a>=1且a<=9C. a>=1&&a<=9D. 1≤a≤99.有以下程序main(){int i=0,k=2;if(++i)printf("%d",k);else printf("%d",-k)}执行后输出结果是A. -2B. 2C. 0D. 110.执行下面的程序段后,变量k中的值为int k=3, s[2];s[1]=k; k=s[1]*10;A.不定值 B.33 C.30 D.10 11.若有以下说明和语句,则输出结果是______。

c语言试卷

c语言试卷

C语言试卷一、选择题(40分,每题1分)1、C语言规定:在一个源程序中,main函数的位置(C)。

A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意D、必须在最后2、组成C语言程序的是(A)。

A、函数B、子程序C、过程D、主程序和子程序3、C语言中,用户能使用的合法标识符是(C)。

A、a_b!B、–xyzC、fa2D、5i4、若定义int i; 则以下循环语句的循环执行次数是(B)。

for(i=2; i==0;)printf("%d", i--);A、无限次B、0次C、1次D、2次5、以下关于宏替换的叙述不正确的是(D)。

A、宏替换只是字符替换B、宏名无类型C、宏替换不占用运行时间D、宏替换不占用编译时间6、在循环语句的循环体中,continue语句的作用是(C)。

A、立即终止整个循环B、继续执行continue语句之后的循环体C、结束本次循环D、结束本次循环并跳出循环7、以下对C语言中字符数组的错误描述是(C)。

A、字符数组可以存放字符串B、字符数组中的字符串可以整个输入、输出C、可以在赋值语句中通过赋值运算符=对字符数组整体赋值D、字符数组中字符串的结束标志是‘\0’8、C语言规定,函数返回值的类型由(D)所决定。

A、return语句中的表达式类型B、调用该函数时的主调函数类型C、调用该函数时的形参类型D、在定义该函数时所指定的函数类型9、以下关于do-while循环的不正确描述是(B)。

A、do-while的循环体至少执行一次B、do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C、在do-while循环体中,一定要有能使while后面表达式的值变为零("假")的操作D、do-while的循环体可以是复合语句10、若a=-14,b=3,则条件表达式 a<ba:b+1的值为(A)。

A、-14B、-13C、3D、411、已知:int n,i=1,j=2;执行语句n=i<j?i++:j++;则i和j的值是(C)。

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语言试卷(含答案)

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语言试卷

一、选择题(请选择一个最合适的答案填在题前面的括号中,每题 2 分, 15题,计 30 分)1、一个 C 程序的执行是从( A)A、main ()函数开始,直到 main ()函数结束B、第一个函数开始,直到最后一个函数结束C、第一个语句开始,直到最后一个语句结束D、main ()函数开始,直到最后一个函数结束2、下列符号可以作为变量名的是 ( C )A、+aB、*pC、_DAYD、next day3、若定义 int m=7,n=12; 则能得到值为 3 的表达式是( D )A、n%=(m%=5)B、n%=(m-m%5)2C、n%=m-m%5D、(n%=m)- (m%=5)54、为了避免嵌套的 if-else 语句的二义性, C 语言规定 else 总是与 (C ) 组成配对关系A、缩排位置相同的 ifB、在其之前未配对的 ifC、在其之前最近的未配对的 ifD、同一行上的if5、以下叙述中正确的是(A )A、函数的定义不可以嵌套,但函数的调用可以嵌套B、函数的定义可以嵌套,但函数的调用不可以嵌套C、函数的定义和调用都可以嵌套D、函数的定义和调用都不可以嵌套6、已知大写字母 A 的 ASCII 码值是 65,小写字母 a 的 ASCII 码是 97,则用八进制表示的字符常量‘\103’是 ( C )A 、AB 、BC 、CD 、D7、下列语句段中不是死循环的是( B )A、for (i=1;;i++)B、 i=100;Sum=sum+1; while(1){i=i%100+1;if(i==20)break;}D、s=3379;while (s++%2+3%2)s++;++k;} while (k<=0)8、以下关于字符数组的描述中错误的是( C)A、字符数组可以存放字符串B、字符数组中的字符串可以整体输入和输出C、可以在赋值语句中通过运算符“ = ”对字符数组整体赋值D、不可以用关系运算符对字符数组中的字符进行比较9、在定义了数组 int a[3][6];后,第 10 个元素是 BA、a[2][4]B、a[1][3]C、a[3][1]D、a[4][2]10、有以下程序#include "stdio.h"#include "string.h"main(){char s[]="sb\n\\\'\r\b";printf("%d,%d\n",sizeof(s),strlen(s));A}A 、8 ,7B 、8 ,8C 、7 ,8D 、7 ,711、在 C 语言的程序中,下列叙述错误的是( D)A、形参是局部变量B、不同的函数中,可以使用相同名称的变量C、在一个函数的内部,可以在复合语句中定义变量D、main ()函数中定义的变量在整个文件或程序中都有效12、C 语言中规定函数的返回值的类型是由( D )A、return 语句中的表达试类型所决定B、调用该函数时的主调用函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型所决定13、已知变量 a 被定义为 int 型变量,以下定义并初始化指针变量 p 的语句中正确的是(D)A、int p=a;B、int *p=*a;C、int p=&a;D、int *p=&a;题号一二三四总分得分C、k=0;do{14、若有定义 char s[3][4];以下对数组元素 s[i][j]的各种引用形式中错误的是 ( A )A、*(s[i]+j)B、*(s+i)+jC、s[i][j]D、*(*(s+i)+j)15、下面提供的一组函数中,用于按“记录”的方式进行输入和输出的是( C )B、fscanf(),fprintf()D、fgetc(),fputc()二、填空题(每题 2 分, 10 题,计 20 分)1、c 语言的语句必须以_____;_______结尾,C 语言中可以利用______强制类型转换_______将一个表达式的值转换成指定的类型。

小学c语言试卷

小学c语言试卷

小学c语言试卷一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function2. 在C语言中,哪个运算符用于取模?A. %B. /C. *D. -3. 下列哪个选项是C语言的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable$name4. 在C语言中,若要打印输出一个整数,应使用哪个函数?A. printfB. scanfC. coutD. input5. 以下哪个选项是C语言的控制语句?A. ifB. forC. whileD. All of the above6. 在C语言中,哪个关键字用于定义一个数组?A. arrayB. listC. vectorD. None of the above7. 以下哪个选项是C语言的逻辑运算符?A. &&B. ||C. !D. All of the above8. C语言中,哪个关键字用于定义一个结构体?A. structB. classC. unionD. enum9. 在C语言中,哪个函数用于计算两个数的最大值?A. maxB. minC. absD. None of the above10. 下列哪个选项是C语言的输入输出库?A. <iostream>B. <cstdio>C. <iostream.h>D. <cstdio.h>二、填空题(每题2分,共20分)11. 在C语言中,定义一个整型变量的关键字是_______。

12. 一个C语言程序的执行从主函数_______开始。

13. 在C语言中,使用_______函数可以读取用户输入的整数值。

14. 要实现条件控制,可以使用_______语句。

15. 在C语言中,数组的元素默认从下标_______开始。

c语言试卷及答案

c语言试卷及答案

C语言程序设计一、单项选择题1.以下叙述不正确的是______。

A)一个C源程序可由一个或多个函数组成B)一个C源程序一行内可以写多条语句C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面2.以下正确的C语言标识符是 __ ____。

A)%x B)a+b C)a123; D)test!3.以下对’\t’描述正确的是______。

A) ’\t’是两个字符B) ’\t’是一个字符C) ’\t’是一个字符串D)以上都不是4.C语言中的简单数据类型有______。

A)整型、实型、逻辑型B) 整型、字符实型、逻辑型C)整型、实型、字符型D) 整型、实型、字符型、逻辑型5.在C语言中,数字029是一个______。

A)八进制数B)十六进制数C)十进制数D)以上都不是6.以下选项中,当为x大于的奇数时,值为0的表达式是______。

A)x%2==0 B) x%2==1 C)x/2 D) x%2!=0 7.已知char c=’d’;,则printf(“%c”,’A’+(‘e’-c));的输出结果是______。

A)a B)e C)B D)D8.已知int a=1,b=3,t; ,若要将a和b变量中的数据进行交换,则下面正确的是______。

A)a=b; b=a; B)a=t; t=b; b=a;C)t=a; a=b; b=t; D)t=a; b=t; b=a;9.已知int a=2,b; ,则执行语句b=1.0/a;后,b的值是__ ____。

A)0.5 B)0 C)1 D)210.已知int i=1,j;,则执行语句j=i++;后,j的值是______。

A)1 B)2 C)-2 D)-111.已知int x=2,y=1,z;,则执行语句z=!x && --y;后,y的值是______。

A)0 B)1 C)2 D)-112.执行以下程序段后,输出结果是______。

int x=10;x+=(x=8);printf(“%d\n”,x);A)10 B)8 C)18 D)1613.已知int b; char s[8];,则正确的输入语句是______。

c语言试卷

c语言试卷

c语言试卷(总9页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--;C 语言程序设计测试题姓名:成绩:一.填空:15 分1.在 scanf 函数的格式控制串中,转换说明符2.C 语言程序都是从3.函数体用4.c 语句都用5.标准库函数6.转义序列\n 表示、和函数开始执行。

结束。

结束。

在屏幕上显示信息。

符,它把光标定位在屏幕下一行的开始位置。

和_____。

开始,用表示要输入一个整数。

7. 所有的程序都可以用三种控制结构编写。

这三种控制结构是8.用花括号组合在一起的多个语句称为9.10. 存储类别说明符有 auto、、循环结构在条件为真时反复执行一条语句或一组语句。

二.判断下述说法是否正断。

如不正确,说明理由,20 分。

1. printf 函数总是从新行的起始位置开始打印。

( )2. 计算机会把/*和*/之间的注释文本打印到屏幕上。

( )3. 在 printf 函数的格式控制串中使用转义序列\n 会把光标定位到屏幕上下一行的开始位置。

( )4. 所有的变量在使用前都必须予以声明。

( )5. 在声明变量时必须给出变量的类型。

( )6. C 语言认为变量 number 和 NuMbEr 是相同的。

()7. 声明语句可放在函数体中的任何位置。

()8. printf 函数的格式控制串之后的所有参数的前面都必须有&。

()9. 求余运算符%只能用于两个整数操作数。

()10. 算述运算*、/、+和一具有相同的优先级。

()三、选 择 题 , 30 分。

1. 在 C 语言中,不同类型数据混合运算时,要先转换成同一类型后进行运算。

设 一表达式中包含有 int 、long 、unsigned 、char 类型的变量和数据,则表达式最 后的运算结果是 A 、 intB 、 char类型数据。

C 、 unsignedD 、 long。

D 、 -1,655352. 若 int 型数据占 2 个字节,则以下语句的输出为int k=-1; A 、 -1,-1printf(“%d,%u \n”,k,k); B 、 -1,32767C 、 -1,327683. 若 a, b 均为 int 型变量,x, y 均为 float 型变量,正确的输入函数调用 是。

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语言试卷

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、可以是任意合法的表达式

3套 《C语言程序设计》试卷+参考答案

3套 《C语言程序设计》试卷+参考答案

一、选择填空:(每题1.5分,共15分)1.以下可以正确表示字符型常数的是。

(A) “a”(B) ‘297’ (C) ‘\t’ (D)“\n”2. typedef struct{ char name[10];int age;char interests[20];} student;以上语句中 student 是:(A)结构体变量,有存储空间 (B)结构体数据类型,无存储空间(C)结构体变量,无存储空间 (D)结构体数据类型,有存储空间3.函数:void f(void){int i = 12, j;for(j=0; j<20; j++)i++;}当f执行完退出后,i的值为_____ _____(A) 12 (B) 32 (C) 29 (D) 无定义4.若有以下说明: int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是(A)*p+6 (B)*(p+6) (C)*p+=5(D)p+55.以下代码执行后,result的值为:#define FIVE 2+3result = FIVE * FIVE(A) 11 (B) 13 (C) 25 (D)106.已知函数定义的形式如下:struct data *f(void){……}则函数f:(A) 没有参数,返回值是一个结构体(B)有一个参数void, 返回值是一个结构体(C)没有参数,返回值是一个结构体指针(D)有一个参数void, 返回值是一个结构体指针7.下列说法中,不正确的是_ ____(A)函数中可以没有return语句。

(B)所有的函数都不能嵌套定义,但可以相互调用。

(C)函数的实参应与其对应的形式参数类型一致。

(D)函数可以不加函数返回值类型标识符。

8.一个C程序的执行是。

(A)从本程序的main函数开始,到main函数结束(B)从本程序文件的第一个函数开始,到本程序文件最后一个函数结束(C)从本程序的main函数开始,到本程序文件的最后一个函数结束(D)从本程序文件的第一个函数开始,到本程序的main函数结束9.在C语言的算术运算符中只能用于整型数的运算符是(A)* (B)/ (C)++ (D)%10 在下列选项中,没有构成死循环的程序段是(A)int i=100;while (1) {i=i%100+1;if(i>=100) break;}(B)for(;;);(C)int k=1000;do{++k;} while (k>=1000);(D)int s=36while(s); --s;二、写出下列程序的运行结果:(共35分)1.(8分)int funa(int *a) { a[0] ++; }int funb(int b[]) { b[1] += 5; }main(){int a[5] = {2,3,4,5,6};int b[5] = {2,3,4,5,6};int *p, i;p = &a[0];(*p)++;funb(p);for(i = 0; i <5; i++)printf("%d,",a[i]);p = &b[1];funa(p);funb(p);for(i = 0; i < 5; i++)printf("%d,",b[i]);}运行结果:2、(6分)main(){char a[]="programming", b[]="language";char *p1,*p2;int i;p1=a; p2=b;for(i=0; *(p1+i)!=’\0’&&*(p2+i)!=’\0’;i++)if(*(p1+i)==*(p2+i)) printf("%c",*(p1+i)); }运行结果是:3、(8分)int f(int n){if (n==1){return 1;}else{return 2 * f(n/2);}}运行结果: f(20)的值是多少?4、(6分)void change (int *a, int *b){int x =* a;*a = *b; *b = x;printf(“%d %d “, *a, *b)';}void main(){int x=10,y=25;change (&x, &y);printf(“%d %d “, x, y)';}运行结果:5、(5分)已知字母A的ASCII码为十进制的65,下面程序的输出是void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}答案三、程序填空(每空2分,共38分)1、下面是一个求数组元素之和的程序。

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语言程序设计考试试题(附答案)

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语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇

C语言程序设计试题附答案3篇C语言程序设计试题附答案11. 用C语言编写的代码程序( B )A)可立即执行 B)是一个源程序 C)经过编译即可执行 D)经过编译解释才能执行2. C语言中用于结构化程序设计的三种基本结构是( A )A)顺序结构、选择结构、循环结构 B)if、switch、break C)for、while、do-while D)if、for、continue3. 以下定义语句中正确的是( C )A)char a='A'b='B'; B float a=b=10.0;C)int a=10,b= D)float a,b=4.下列选项中,不能用作标识符的是( D )A)_1234_ B)_1_2 C) int_2_ D)2_int_5.在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则 ( B )A)称为函数的直接递归调用 B)称为函数的间接递归调用C)称为函数的循环调用 D)C语言中不允许这样的递归调用6.以下叙述中正确的是 ( A )A)局部变量说明为static存储类,其生存期将得到延长B)全局变量说明为static存储类,其作用域将被扩大C)任何存储类的变量在未赋初值时,其值都是不确定的D)形参可以使用的存储类说明符与局部变量完全相同7.若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是( B)A)for(i=1,p=1;i=0_______;i--){if(____i%17==0____④________) break;}printf("%d\n",__⑤_i____);}3.以下程序从终端读入数据到数组中,统计其中正数的个数,并计算它们之和。

main(){ int i,a[20],sum,count;sum=count=0;for(i=0;i0)?? { count++;?? sum+= _a[i]__③___ ;?? }? }printf("sum=%d,count=%d\n",__sum④___,__⑤__count___);}4.以下程序的功能是调用函数fun计算:m=1+2+3+4+…+9+10,并输出结果。

c语言考试试卷

c语言考试试卷

c语言考试试卷一、选择题(每题2分,共40分)1. 在C语言中,以下哪个关键字用于声明函数?A. intB. charC. voidD. return2. C语言中,以下哪个不是合法的变量名?A. _myVarB. my_varC. 123varD. var3. 以下哪个语句可以正确地在C语言中声明一个整型数组?A. int numbers = {1, 2, 3};B. int numbers[] = {1, 2, 3};C. int numbers[3] = {1, 2, 3};D. int numbers[3] = 1, 2, 3;4. 在C语言中,哪个函数用于将整数转换为字符串?A. atoiB. itoaC. sprintfD. strcpy5. C语言中,以下哪个不是控制语句?A. ifC. forD. scanf6. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello World!"D. "Hello\nWorld!"7. C语言中,以下哪个不是标准输入输出库函数?A. printfB. scanfC. getcharD. strcpy8. 以下哪个语句不能正确地在C语言中实现数组元素的初始化?A. int arr[5] = {0};B. int arr[5] = {};C. int arr[] = {0, 1, 2, 3, 4};D. int arr[5] = {1};9. 在C语言中,以下哪个关键字用于声明指针变量?A. intB. charC. *D. void10. C语言中,以下哪个函数用于计算字符串的长度?A. strlenB. strcpyD. strcmp二、填空题(每空2分,共20分)11. 在C语言中,一个变量的声明必须在______之前。

完整版C语言试卷及答案

完整版C语言试卷及答案

完整版C语言试卷及答案一、选择题部分(每题1分,共30分)1. 下列选项中,不是C语言基本数据类型的是:A. intB. doubleC. charD. boolean2. 在C语言中,以下哪个用于定义常量的关键字?A. constB. staticC. finalD. define3. 下面哪个选项是正确的C语言注释格式?A. /** 注释内容 */B. // 注释内容C. /* 注释内容 */D. # 注释内容4. 下列选项中,不是C语言的逻辑运算符的是:A. &&B. ||C. !D. %5. 在C语言中,以下哪个函数用于输出信息到屏幕上?A. scanf()B. printf()C. gets()D. puts()二、填空题部分(每题2分,共20分)1. 在C语言中,用于声明变量的关键字是_________。

2. 在C语言中,用于取一个整数的绝对值的函数是_________。

3. 下面这段代码的输出结果是_________。

```c#include <stdio.h>int main(){int a = 10;int b = 20;printf("%d + %d = %d\n", a, b, a + b);return 0;}```4. 在C语言中,用于按位取反的运算符是_________。

5. 下面这段代码的循环次数是_________。

```c#include <stdio.h>int main(){int i;for (i = 0; i < 5; i++){printf("%d ", i);}return 0;}```三、编程题部分(共50分)1. 编写一个程序,输入一个整数n(n>0),输出1到n之间的所有偶数。

2. 设计一个函数,接收两个整数参数a和b,返回它们的最大公约数。

3. 编写一个程序,实现斐波那契数列的前n项的求和。

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

2.下列常量中合法的是( )。
A.'BASIC '
B.' \\ '
C.1e5.0
3.下列选项中,不能用作标识符的是( )。
A._1234_
B. _1_2
C. int_2_
4. 计算表达式 48%10/3 的值是( )。
D.∏ D. 2_int_
A.1.25
B.1
C.1.0
D.2
5.下列关系表达式中结果为假是的( )。
7. 若有定义: int a=1,b=2,c=3;则表达式 (a<b?b:a) >c?c:(a<b?b:a)的值为( )。
A.0
B.1
C.2
D.3
8. 若有定义: int a,b;则表达式(a=3,b=3,b+=a+=3)的值是( )。
A.3
B.6
C.9
D.12
9. 若有定义:int x=5,y=6;则执行 printf("%d,", ++x);printf("%d\n", y--);的结果是
四.编程题(共 2 小题,每小题 10 分,共 20 分) 1. 用泰勒级数求 e 的近似值。直到最后一项小于 0.000001 为止。
e=1 1 1 ... 1 1! 2! n!
2. 定义一个有 10 个元素的整型一维数组,从键盘输入数据。寻找一个指定的数,若找 到,输出该数组中的下标值,否则输出-1。
8. 将一个字符串中的小写字母变为大写字母,其他字符不变。 main() { char s[]= "hELLO,2006!",*q; q=s; while (*q) { if(*q>='a' && *q<='z') *q=_____________; q++; } printf("%s\n",s); }
( )。
A. 5,5
B. 5,6
C. 6,5
D. 6,6
10. 若有定义:int x=0,y=0,z=0; ++x||++y&&++z;则执行 printf("%d %d %d\n",x,y,z);
的结果是( )。
A. 0 0 0
B. 1 0 0
C. 1 1 0
D. 1 1 1
11. 下列函数定义中正确的是 ( )。
9. main() { int a[]={1,2,3,4,5}; int m,*p; p=a; m=*(p+2); printf("*p=%d,n=%d\n",*p,m); }
10. struct info { int k; char *s; }t; void f(struct info t) { t.k=1997; t.s="Borland"; } main() { t.k=2000; t.s="Inprise"; f(t); printf("%d,%s\n",t.k,t.s); }
pointer=x;
x=pointer;
C.int * pointer,x;
D.int * pointer,x;
pointer=&x;
x=&pointer;
18. 若有定义:int i=10,j=20,*p=&i,*q=&j; p=q; 则执行 printf("%d %d\n",*p,*q);
的结果是( )。
5. 计算 20+21+…+263 的值,其中用到了自定义的求 mn 的函数 power。 double power(int m,int n) { int i;
double p=1; for(i=1;i<=n;i++)
p=p*m; return p; } main() { int i; double sum=0; for(i=0;i<64;i++)
while(i<=100) { if(____________________)
sum+=i; i++; } printf("100 以内的奇数之和为:%d\n",sum); }
4.输出以下形式的图案:
* ** *** **** main( ) { int i,j; for(i=1;i<=4;i++) { for(j=1;j<=____________________;j++) printf("*"); printf("\n"); } }
{ return x*y;}
12. 若有宏定义:#define f(x) x*x,则表达式 f(4+4)/f(2+2)的值为( )。
A.3
B.4
C.16
D.28
13.对于一维数组 a[10],对数组元素的引用正确的是( )。
A.a[2+3]
B.a[3/1.0] C.a[10]
D.a[3.4]
14.下面对数组赋初值错误的是( )。
}
2. main() { int x=2; switch(x==2) { case 1:printf("*");break; case 2:printf("%");break; } }
3. main() { int i=1,s=3; while(s<15) { s+=i++; if(s%7==0) continue; else i++; } printf("%d\n",i); }
int a[3][3]={1,2,3,4,5,6,7,8,9}; for(k=0;k<3;k++)
printf("%d ",a[k][2-k]); }
8.void fun(int x) { if(x>1) fun(x-1); printf("%d ",x); } main() { fun(5); }
A. 10 20
B. 20 20
C. 10 10
D.20 10
19.以下能正确进行字符串赋值的是( )。
A. char *sp; *sp="right"; B. char s[10]; s="right";
C. char s[10]; *s="right"; D. char *sp="right";
10. 如果有以下结构体说明和变量定义,且已建立好如图所示的链表,现要完成将一个
新节点 newnode 插在链表的最前面。
struct node { int no;
struct node *next; }*head,*newnode;
head
3
4
5
6
^
newnode=(struct node*)malloc(sizeof(struct node)); newnode->no=2; _____________________________; head=newnode;
A.int a[]={1,2,3,4};
B.int a[5]={0,1,2,3,4,5};
C.int a[2][3]={1,2,3,4,5,6}; D.int a[2][3]={{1},{2}};
15. 能正确判断字符串 s1 大于字符串 s2 的是( )。
A. if(s1>s2)
B. if(strlen(s1)>strlen(s2))
x2 1
f(x)=
x
x
2
1
x 1 1 x 1
x 1
main()
{ float x,y;
scanf("%f",&x);
if(x>=1)
y=x*x+1;
else
if(____________________)
y=x;
else y=x*x-1;
printf("y=%f\n",y); }
3.计算 100 以内的奇数之和。 main() { int i=1,sum=0;
C. if(strcmp(sl,s2)>0)
D. if(strcmp(s1,s2)==0)
16.若有定义:int a[8],*p;则与 p=a;等价的语句是( )。
A.p=&a[0];
B.p=a[0]; C.p=*a;
D.*p=&a;
17.下列定义正确的是( )。
A.int *pointer,x;
B.int *pointer,x;
20.C 语言中可以处理的文件类型是( )。
A.文本文件和数据文件
B.文本文件和二进制文件
C.数据文件和二进制文件
D.任何类型文件
二. 阅读程序,写出下列程序的运行结果。(共 10 小题;每小题 3 分,共 30 分) 1. main()
{ int a=2; if(a>0) a-=2; else if(a==0) a-=2; else a+=10; printf("%d\n",a);
一.单项选择题(请在每小题的四个备选答案中,选出一个最佳答案,共 20 小题;每小题
1 分,共 20 分)
1. 一个十进制整数-43,在机内用补码表示为( )。
A.1000000000010101
B.1000000000101011
相关文档
最新文档