C语言期末考试题库(第一章 c语言基
大一期末c语言复习题库
大一期末c语言复习题库C语言作为计算机科学与技术专业学生的一门基础课程,对于理解计算机程序设计的原理和思想具有重要意义。
以下是为大一学生准备的C语言期末复习题库,涵盖了C语言的基本概念、数据类型、控制结构、数组、函数、指针、结构体、文件操作等重要知识点。
# 一、基本概念1. 解释C语言的特点。
2. 描述C语言的基本结构,包括预处理指令、函数、语句和注释。
3. 列举C语言中的基本数据类型,并解释它们的区别。
# 二、变量与数据类型1. 什么是变量?如何声明变量?2. 解释整型(int)、浮点型(float)、双精度型(double)和字符型(char)的区别。
3. 写出C语言中不同数据类型所占的存储空间大小。
# 三、运算符与表达式1. 列举C语言中的算术运算符,并给出示例。
2. 描述赋值运算符的用法。
3. 解释条件运算符(?:)的用法。
# 四、控制结构1. 描述if语句的用法,并给出一个例子。
2. 解释while循环和do-while循环的区别。
3. 写出for循环的一般形式,并解释其组成部分。
# 五、数组1. 什么是数组?数组有哪些类型?2. 如何声明和初始化一维数组和二维数组?3. 写出一个程序,实现冒泡排序算法。
# 六、函数1. 解释函数的定义和声明。
2. 描述函数参数的传递方式(值传递和引用传递)。
3. 写出一个自定义函数,实现求最大值的功能。
# 七、指针1. 解释指针的概念和用途。
2. 写出一个程序,使用指针交换两个变量的值。
3. 解释指针数组和数组指针的区别。
# 八、结构体1. 什么是结构体?如何定义结构体?2. 写出一个程序,使用结构体存储学生信息。
3. 解释结构体指针的用法。
# 九、文件操作1. 解释文件的概念和分类。
2. 描述文件的打开、关闭、读写操作。
3. 写出一个程序,实现将数据写入文件,并从文件中读取数据。
# 十、综合应用1. 编写一个程序,实现学生成绩管理系统,包括录入、查询、修改和删除功能。
c语言基础期末考试题及答案
c语言基础期末考试题及答案C语言基础期末考试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个是合法的字符常量?A. 'A'B. "A"C. 123D. A答案:A2. 下列哪个选项是C语言中的关键字?A. intB. IntegerC. StringD. float答案:A3. 以下哪个语句可以正确地声明一个整型数组?A. int arr[10];B. int [10] arr;C. int arr = 10;D. int arr(10);答案:A4. 在C语言中,哪个运算符用于计算两个数的乘方?A. *B.C. /D. %答案:B5. 以下哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. 在C语言中,哪个函数用于计算一个数的平方根?A. sqrt()B. pow()C. log()D. abs()答案:A7. 下列哪个选项是C语言中的循环结构?A. ifB. switchC. forD. do-while答案:C8. 在C语言中,以下哪个是正确的函数定义?A. int function(int x) { return x * x; }B. int function(int x) { return sqrt(x); }C. void function(int x) { return x; }D. int function(int x) { return x / 0; }答案:A9. 在C语言中,哪个关键字用于定义指针类型?A. intB. charC. floatD. *答案:D10. 下列哪个选项是C语言中的数组初始化方式?A. int arr[] = {1, 2, 3};B. int arr = {1, 2, 3};C. int arr[3] = {1, 2, 3};D. int arr[3] = 1, 2, 3;答案:A二、填空题(每空2分,共20分)1. 在C语言中,____ 是最基本的数据单位。
C语言期末参考试题1
大学C语言期末考试题及答案(1)1、构成C语言的基本单位是_______。
A.过程B.函数C.语句D.命令2、设x为整型变量,不能正确表达数学关系:5<x<10的c语言表达式是_____。
A. 5B.x>5&&x<10C.x==6||x==7||x==8||x==9D.!(x<=5)&&(x<10)3、在C语言中,逻辑运算符的优先级从高到低的排列顺序为_____。
A.&&、||、!B.||、&&、!C.&&、!、||D.!、&&、||4、下面语句中,正确的是_____。
A.printf("%c\n","student");B.printf("%c\n","c");C.printf("%s\n",&a);D.printf("%s\n","hello");5、对于for(表达式1;;表达式3)可以理解为_____。
A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)6、执行下面程序段的结果是_____。
main() { int x=1,a=0,b=0; switch(x) { case 0:b++; case 1:a++; case 2:a++;b++; } printf("a=%d,b=%d",a,b); }A.a=1,b=1B.a=2,b=1C.a=1,b=0D.a=2,b=27、执行下面程序段的结果是_____。
int x=0; do { printf(“-”,x--); }while(x);A.打印出321B.打印出23C.不打印任何结果D.陷入死循环8、设x=10,y=5;z=15,执行下面一段程序后z的结果是_____。
C语言期末考试题(含答案)
C语言期末考试题(含答案)《C语言程序设计》期末试卷一、单项选择题(10x2’=20’)1、以下叙述正确的是()A)C语言的源程序不必通过编译就可以直接运行。
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令。
C)C语言源程序经编译形成的二进制代码可以直接运行。
D)C 语言中的函数不可以单独进行编译。
2、一个C语言的源程序中()A)必须有一个主函数B)可能有多个主函数C)必须有除主函数外其它函数D)可以没有主函数3、以下不能定义为用户标识符的是()A)scanfB)VoidC)_3comD)int4、若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3;B)1+2=x2;C)x3=0x12;D)x4=1+2=3;15、设有定义:floata=2,b=4,h=3;以下C语言表达式中与代数式(a b)*h的计2算结果不相符的是().C)for、while、do-whileD)if、for、continue7.在while(!x)语句中的!x与下面条件表达式等价的是()A) x!=0B) x==1C)x!=1D)x==08、有以下程序:#include <XXX>void main(){int i=1,j=1,k=2;if( (j++||k++)&&i++ )printf(“%d,%d,%d\n”,i,j,k);}执行后的输出结果是()A)1,1,2B)2,2,1C)2,2,2D)2,2,39、有以下程序:#include <XXX>void main(){int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是()A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中奇数之和D)自然数1~10中偶数之和10、有以下函数定义:void fun(int n,double x){……}若以下选项中的变量都已经正确定义并赋值,则对函数fun的正确调用语句是()A)fun(int y,double m);B)k=fun(10,12.5);C)fun(x,n);D)void fun(n,x);2、填空题(10x2’=20’)11、C言语描绘“x和y都大于或等于z”的表达式是:。
c语言期末测试题(附答案)
《计算机技术基础(C语言)》试卷A 姓名:学号: 专业:学院: 班级:20 年月日第一部分选择题(共 30 分)Array一、单项选择题(本大题共 15 小题,每题只有一个正确答案,答对一题得 2 分,共 30 分)1、以下关于C语言标识符的描述中,正确的是【】。
A)标识符可以由汉字组成B)标识符只能以字母开头C)关键字可以作为用户标识符D)Area与area是不同的标识符2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【】。
int i,j,k;scanf(“%d,%3d%d”,&i,&j,&k);printf(“%d,%d,%d\n",i,j,k);A)12345678 B)123,456,78 C)123,45678 D)123,*456783、判断char类型的变量c1是否为数字字符的正确表达式为【】。
A) (c1〉=0)&&(c1<=9) B) (c1>=’0’)&&(c1〈=’9’)C) ’0’〈=c1〈=’9’ D)(c1>='0’)||(c1<=’9’)4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是【】。
A)'a’&&'b' B)a<=b C)((a〉b)||(b〈c) D)(!(a+b)==c&&a)5、已知:int a[2][3]; 则对数组元素的非法引用是【】A. *(a[0]+2) B。
a[1][3] C . a[1][0]D。
*(*(a+1)+2)6、在循环语句的循环体中执行break语句,其作用是【】. A)跳出该循环体,提前结束循环B)继续执行break语句之后的循环体各语句C)结束本次循环,进行下次循环D)终止程序运行7、执行语句for(i=10;i>0;i-—);后,变量i的值为【】。
A)10 B)9 C)0 D)18、若有int *p1, *p2,k; 不正确的语句是【】A。
c语言大一期末考试题库及详解答案
c语言大一期末考试题库及详解答案C语言大一期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言的关键字?A. IntegerB. StringC. FloatD. None of the above答案:D2. 在C语言中,定义一个整型变量的正确语法是什么?A. int var;B. var int;C. integer var;D. var integer;答案:A3. 以下哪个表达式的结果不是整数?A. 3 / 2B. 7 % 3C. 10 / 2D. 8 / 2答案:A二、填空题1. 在C语言中,用于定义数组的关键字是________。
答案:Array2. 一个C语言程序的执行从________函数开始。
答案:main3. 以下语句的输出结果是________。
```cint a = 5, b = 10;printf("%d", a + b);```答案:15三、简答题1. 简述C语言中指针的概念及其用途。
答案:指针是C语言中用来存储变量地址的变量。
它允许程序员直接访问内存地址,从而可以动态地操作内存。
指针的用途包括动态内存分配、实现数据结构如链表、数组的遍历等。
2. 解释C语言中的函数重载。
答案:C语言不支持函数重载。
在C语言中,如果两个或多个函数具有相同的名称但参数列表不同,编译器会报错。
这是与支持函数重载的语言(如C++)的主要区别。
四、编程题1. 编写一个C语言程序,实现计算并输出1到100的整数之和。
```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("The sum of numbers from 1 to 100 is: %d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转的功能。
c语言期末考试题库大题及详解答案
c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
C语言期末考试题库(第一章c语言基.doc
一、单项选择1.算术运算符 ,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为 ().A、关系运算 ,赋值运算 ,算术运算B、算术运算 ,关系运算 ,赋值运算C、算术运算 ,赋值运算 ,关系运算D、关系运算 ,算术运算 ,赋值运算答案: B2.下述正确的 C语言常量是 :().A、E2B、3e-3C、1.5E2.5D、5.0E答案: B3.使用共用体变量 ,不可以 ().A、进行动态管理B、节省存储空间C、同时访问所有成员D、简化程序设计答案: C4.为表示关系 x>=y>=z,应使用 C语言表达式为 :()A、(x>=y)&(y>=z)B、(x>=y>=z)C、(x>=y)&&(y>=z)D、(x>=y)AND(y>=z)答案: C5.以下程序的输出结果是().main(){char str[]="ABCD",*p=str;printf("%s\n",p);}A、68B、ABCDC、不确定的值D、字符 D 的地址答案: B6.char a[10];不能将字符串 "abc"存储在数组中的是 ().A、a="abc";B、a[0]=0;strcat(a,"abc");C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;D、strcpy(a,"abc");答案: A7.fscanf 函数的正确调用形式是 ().A、fscanf(文件指针 ,格式字符串 ,输入表列 );B、fscanf(格式字符串 ,文件指针 ,输出表列 );C、fscanf(fp,格式字符串 ,输出表列 );D、fscanf(格式字符串 ,输出表列 ,fp);答案: A8.下列数组说明中正确的是().A、int array[][]={1,2,3,4,5,6,7,8,9,10};B、int array[][][5]={1,2,3,4,5,6,7,8,9,10};C、int array[][4]={1,2,3,4,5,6,7,8,9,10};D、int array[3][]={1,2,3,4,5,6,7,8,9,10};答案: C9.以下选项中 ,与 k=n++完全等价的表达式是 ().A、n=n+1,k=nB、k+=n+1C、k=++nD、k=n,n=n+1答案: D10.针对下列程序段回答问题().for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%3d",t);}A、printf 函数永远也不执行B、当 x<0 时整个循环结束C、x>=0 时什么也不输出D、最多允许输出100 个非负整数答案: D11.以下正确的字符串常量是()A、"\\\"B、'A'C、'abc'D、OlympicGames答案: A12.如下说法不正确的是 ().A、若 a 为真 b 为假 ,则 a||b 为真B、若 a 为真 b 为假 ,则 a&&b 为假C、若 a 为真 b 为假 ,则! a-1&&b 为真D、若 a 为真 ,则! a 为假答案: C13.C 语言中 ,用于结构化程序设计的三种基本结构是().A、for,while ,do-whileB、顺序结构 ,选择结构 ,循环结构C、if,switch,breakD、if,for,continue答案: B14.若有以下的定义 :int t[3][2]; 能正确表示 t 数组元素地址的表达式是().A、t[3]B、t[2]C、&t[3][2]D、&t[1]答案: B15.下列运算符中优先级最高的是().A、<B、&&C、+D、!=答案: C16.C 语言程序中 ,必须有的函数是 ().A、main()B、#include"stdio.h"C、scanfD、printf答案: A17.已定义 char a[10];和 char *p=a;,下面的赋值语句中正确的是 ().A、*p="Turbo c";B、p="Turbo c";C、a[10]="Turbo c";D、a="Turbo c";答案: B18.以下叙述正确的是 ().A、可以把 if 定义为用户标识符 ,但不能把 define 定义为用户标识符B、define 和 if 都不能定义为用户标识符C、可以把 define 和 if 定义为用户标识符D、可以把 define 定义为用户标识符 ,但不能把 if 定义为用户标识符答案: D 19.若已定义 x 为 int 类型变量 ,下列语句中 ,说明指针变量 p 的正确语句是 (). A、*p=*x;B、int *p=x;C、int *p=&x;D、int p=&x;答案: C20.以下叙述中 ,正确的是 ().A、花括号 "{" 和"}"只能作为函数体的定界符B、构成 C 程序的基本单位是函数 ,所有函数名都可以由用户命名C、分号是 C 语句之间的分隔符 ,不是语句的一部分D、C 程序中 ,注释部分可以出现在程序中,任意合适的地方答案: D21.以下能对二维数组 a 进行正确初始化的语句是().A、int a[][3]={{1,2,3},{4,5,6}};B、int a[2][]={{1,0,1},{5,2,3}};C、int a[2][4]={{1,2,3},{4,5},{6}};D、int a[][3]={{1,0,1}{},{1,1}};答案: A22.C 语言中 ,double 类型数据占 ().A、8 个字节B、4 个字节C、2 个字节D、1 个字节答案: A23.经过下列的语句 int j,a[10],*p= a;定义后 ,下列语句中 ,合法的是 ().A、p=a[5];B、p=a[2]+2;C、p=p+2;D、p=&(j+2);答案: C24.定义 char s[10],*p=s;,则下面编译不能通过的语句是().A、s=p+s;B、s[2]=p[4];C、p=s+5;D、*p=s[0];答案: A25.以下函数调用语句中 ,实参的个数是 ().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6答案: A26.若 x=2,y=3,则 x||y 的结果是 ()A、0B、3C、2D、1答案: D27.已知 x=43,ch='A',y=0;,则表达式 (x>=y&&ch<'B'&&!y)的值是 ().A、"假"B、语法错C、0D、1答案: D28.下面四个选项中均是不合法的浮点数的选项是().A、-e3.234 1e3B、123 2e4.2.e5C、-.18 123e4 0.0D、160.0.12 e3答案: B29.以下函数调用语句中 ,实参的个数是 ().fun c((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、2答案: D30.已定义 :float x=1.25,y=3.37;根据下面的输出结果 ,正确的输出语句是 (). y+x=4.62,y-x=2.12A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);C、printf("y+x=%6f,y=%6f\n",y+x,y-x);D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);答案: A31.执行下面程序段后 ,ch 的值是 ().char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;A、AB、zC、ZD、a答案: D32.在 C 语言的函数中 ,下列正确的说法是 ().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案: B33.以下正确的描述是 ().A、在循环中 ,break 语句不能独立出现B、只能用 continue 语句来终止本次循环C、goto 语句只能用于退出多层循环D、switch 语句中 ,不能出现 continue 语句答案: B34.C 语言中 ,运算对象必须是整型的运算符是().A、〈 =B、%=C、=D、/答案: B35.下面不正确的字符串常量是().A、"0"B、""C、"12'12"D、'abc'答案: D36.fwrite 函数的一般调用形式是 ().A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);答案: D37.以下定义语句中错误的是().A、int a[]={1,2};B、int n=5,a[n];C、char *a[3];D、char s[10]="test";答案: B38.下列正确的标识符是 ().A、%yB、a+bC、6aD、_do答案: D39.C 语言源程序的基本单位是().A、子程序B、过程C、标识符D、函数答案: D40.若变量已正确定义 ,执行语句 scanf("%d,%d,%d",&k1,&k2,&k3);时,()是正确的输入A、20 30 40B、2030,40C、20,30,40D、20,30 40答案: C41.设有如下程序 ,请选择正确答案 ().#include<stdio.h>main(){int **k,*j,i=100;j=&i,k=&j;printf("%d\n",**k);}A、100B、i 的地址C、j 的地址D、运行错误答案: A42.若定义 :int a=511,*b=&a;,则 printf("%d\n",*b); 的输出结果为 ().A、a 的地址B、无确定值C、511D、512答案: C43.以下叙述中 ,不正确的是 ().A、C程序中的 #include 和#define 均不是 C 语句B、在 C 程序中 ,赋值运算符的优先级最低C、在 C程序中 ,j++;是一条赋值语句D、一个好的程序应该有详尽的注释答案: B44.下面叙述中错误的是 ().A、若一个函数没有return 语句 ,则什么值也不会返回B、一般来说 ,函数的形参和实参的类型要一致C、函数的形式参数 ,在函数未被调用时就不被分配存储空间D、若函数的定义出现在主调函数之前,则可以不必再加说明答案: A45.设有如下程序段 :int k=10;while(k==0)k--;,则下述说明中正确的是 ().A、循环体执行一次B、死循环C、循环体一次也不执行D、循环体执行10 次答案: C46.表示关系 x>0 且 y<=10 的 C 语言表达式为 ().A、(x<=0)AND(y<=10)B、(x>0)&&(y<=10)C、x>0,y<=10D、(x<=0)&(y<=10)答案: B47.以下叙述不正确的是 ().A、C程序的基本组成单位是函数B、在 C 程序中 ,注释说明只能位于一条语句的后面C、一个 C源程序可由一个或多个函数组成D、一个 C 源程序必须包含一个main()函数答案: B48.C 语言提供的合法的数据类型关键字是().A、floatB、unsignedC、charD、int eger答案: B49.所有变量均为整型 ,则表达式 (a=2,b=5,b++,a+b)的值是 :().A、6B、7C、8D、2答案: C50.以下符合 C语言语法的赋值表达式是().A、d=9+e+f=d+9B、d=9+e,e++,d+9C、d=9+eD、d=9+e++=d+7答案: C51.下面对函数的叙述 ,正确的是 ().A、函数中无论是否有return 语句 ,都能返回正确值B、函数中没有 return 语句 ,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return 语句获得的答案: C52.整型变量 x=1,y=3,经下列计算后 ,x 的值不等于 6 的是 ().A、x=(x=1+2,x*2)B、x=9-(--y)-(--y)C、D、x=y>2?6:5答案: B53.设 x,y,z,t 均为整型变量 ,则执行以下语句后 ,t 的值为 :() x=y=z=1;t=++x||++y&&++z;B、不定值C、2D、0答案: A54.下列字符序列中不可用作 C 语言标识符的是 ().A、a_1B、#abC、symbolD、b70答案: B55.C 语言执行程序的开始执行点是().A、包含文件中的第一个函数B、程序中 ,第一个函数C、程序中的 main()函数D、程序中 ,第一条可以执行语言答案: C56.下列运算符优先级最低的是().A、&&B、+C、=答案: C57.下面所列的语句行中能正确进行赋字符串操作的语句行是 ().A、char st[4][5]={"ABCDE"};B、char s[5]={'A','B','C','D','E'};C、char *s;scanf("%c",s);D、char *s;s="ABCDE";答案: D58.以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)C、double fun(int x,y);D、double fun(int x,int y);答案: A59.下列变量中合法的是 ().A、$ABCB、B.C.TomC、3a6bD、_6a7b答案: D60.以下标识符中可以作为用户函数名的是().A、unionB、intC、structD、go_to答案: D61.判断两个字符串是否相等,正确的表达方式是 ().A、while(strcmp(s1,s2)=0)B、while(strcmp(s1,s2)==0)C、while(s1==s2)D、while(s1=s2)答案: B62.下面各语句中能正确进行赋字符串操作的语句是().A、char st[][]={"ABCDE"};B、char s2[6]={'A','B','C','D','E'};C、char s1[5][]={"ABCDE"};D、char s[5]={'A','B','C','D','E'};答案: B63.下列数据中属于 "字符串常量 "的是 ().A、'ABC'B、ABCC、"ABC"D、'A'答案: C64.C 语言中的文件的存储方式有().A、可以顺序存取 ,也可随机存取B、只能随机存取 (或直接存取 )C、只能顺序存取D、只能从文件的开头进行存取答案: A65.putchar 函数可以向终端输出一个().A、字符或字符型变量值B、整型变量表达式值C、实型变量值D、字符串答案: A66.下面叙述中正确的是 ().A、声明函数时必须明确其参数类型和返回类型B、函数可以返回一个值,也可以什么值也不返回C、空函数在不完成任何操作,所以在程序设计中没有用处D、对于用户自己定义的函数,在使用前必须加以声明答案: B67.以下标识符中不能作为合法的 C 用户定义标识符的是 ().A、_123B、voidC、ifD、a3_b3答案: B68.将字符串 Turbo 赋给字符数组 word,则下面错误的说明语句是 ().A、char word[]={"Turbo\0"};B、char word[]="Turbo\0";C、char word[]={'T','u','r','b','o','\0'};D、char word[]='Turbo\0';答案: D69.用下面的 scanf 函数输入数据 ,使得 i=10,j=15,选择正确的键盘输入方法:().(用[CR]表示回车 )main(){int i,j;scanf("i=%d,j=%d",&i,&j);}A、i=10,j=15[CR]B、i=10Uj=15[CR]C、10U15[CR]D、10,15[CR]答案: A70.跳过当前循环体内容 ,继续执行下一次循环的语句是()A、continue 语句B、return 语句C、break 语句D、空语句答案: A71.设有以下定义 :int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;,则数值为 6 的表达式是 ().A、p+5B、*p+6C、*p+=5D、*(p+6)答案: C72.以下程序段执行后输出的结果是().char str[]="ABCD",*p=str;printf("%d\n",*(p+4));A、不确定的值B、字符 'D'的地址C、68D、0答案: D73.用下面的 scanf 函数输入数据 ,使得 i=10,k=15 选择正确的键盘输入方法(). (用"[CR]"表示回车 ,U 表示空格 )main(){int i,k;scanf("i=%d,k=%d",&i,&k);}A、10U15[CR]B、i=10,k=15[CR]C、i=10[CR]k=15[CR]D、10,15[CR]答案: B74.设有如下的程序段 :char str[]="Hello";char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5) 的值为 ().A、'\0'B、'o'C、'o'的地址D、不确定的值答案: A75.定义 int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中 ,0 ≤ i ≤则对9, a 数组元素的引用不正确的是 ().A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))答案: D76.以下字符中 ,不是转义字符的是 ().A、'\b'B、'\\'C、'\c'D、'\a'答案: C77.设 a 为整型变量 ,不能正确表达数学关系10<a<15的 C 语言表达式是 :()A、10<a<15B、!(a<=10)&&!(a>=15)C、a>10&&a<15D、a==11||a==12||a==13||a==14答案: A78.在 C 语言中 ,存储类型为 ()的变量只在使用它们时才占用存储空间 .A、static 和 autoB、register 和 autoC、register 和 externD、static 和 register答案: B79.已知键盘输入a=4,b=3,下面程序输出的结果是().main(){int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A、13B、9C、16D、1580.若要用 fopen 函数打开一个新的二进制文件,该文件要既能读也能写 ,则文件方式字符串应是().A、"ab"B、"wb+"C、"rb+"D、"ab++"答案: B81.设有如下说明和语句 ,请选出哪个是对 c 数组元素的正确引用 ().intc[4][5],(*cp)[5];cp=c;A、*(*cp+2)B、*(cp+3)C、cp+1D、*(cp+1)+3答案: A82.以下标识符中不能作为合法的 C 用户定义标识符的是 ().A、forB、printfC、sizeofD、WORD83.在定义构造数据类型时,不能 ().A、末尾不写分号B、说明变量C、初始化D、说明存储类型答案: A84.以下叙述中 ,错误的是 ().A、用户所定义的标识符应尽量做到"见名知意 "B、用户所定义的标识符必须以字母或下划线开头C、用户所定义的标识符允许使用关键字D、用户定义的标识符中,大,小写字母代表不同标识答案: C85.选择正确的输入语句 ().:(其中 :char string[20];)使得 string 的内容为 "Iam student".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);答案: D86.以下选项中 ,合法的实型常数是 ().A、.2E0B、1.3EC、E-3D、5E2.0答案: A87.若 int a=2,则执行完表达式 a -=a+=a*a后,a 的值是 ().A、-4B、0C、-8D、-2答案: B88.设 a,b 和 c 都是 int 型变量 ,且 a=3,b=4,c=5,下面表达式中值为0 的表达式是().A、a<=bB、'a'&&'b'C、!((a<b)&&!c||1)D、a||b+a&&b-c答案: C89.定义 char b[5],*p=b;, 则能正确赋值的语句是 ().A、*p="abcd";B、p="abcd";C、*b="abcd";D、b="abcd";答案: B90.能正确表示 a>=10 或 a<=0 的关系表达式是 :()A、a>=10||a<=0B、A>=10 or a<=0C、a>=10&a<=0D、a>=10|a<=0答案: A91.设有如下定义 :struct sk{int a;float b;}data,*p;若要使 p 指向 data 中的 a 域,正确的赋值语句是 ().A、p=(struct sk*)data.a;B、p=&data.a;C、*p=data.a;D、p=(struct sk*)&data.a;答案: D92.若变量已正确定义且k 的值是 4,计算表达式 (j=4,k--)后,j 和 k 的值为 ().A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=3答案: D93.当说明一个结构体变量时系统分配给它的内存是().A、结构中 ,第一个成员所需内存量B、成员中 ,占内存量最大者所需的容量C、结构中 ,最后一个成员所需内存量D、各成员所需内存量的总和答案: D94.int(*p)[6]; 它的含义为 ().A、具有 6 个元素的一维数组B、定义了一个指向具有 6 个元素的一维数组的指针变量C、指向整型指针变量D、指向 6 个整数中的一个的地址答案: B95.若有说明语句 :char c='\72';,则变量 c().A、包含 1 个字符B、说明不合法 ,c 的值不确定C、包含 2 个字符D、包含 3 个字符答案: A96.以下表述中正确的是 ().A、do-while 循环中 while 语句不能省略B、在 do-while 循环中 while 表达式的值不能为 " 假"C、除了 for 循环 ,其他循环中都不能使用复合语句D、do-while 循环中 while(表达式 )后面不能加分号答案: A97.能正确表示 a 和 b 同时为正或同时为负的逻辑表达式是:()A、(a+b>0)&&(a+b<=0)B、(a>=0||b>=0)&&(a<0||b<0)C、a*b>0D、(a>=0&&b>=0)&&(a<0&&b<0)答案: C98.下面错误的说明语句是().A、int(*a)[10];B、int a[][];C、int a['a'];D、int *a[10];答案: B99.已知字符 'A'的 ASCⅡ代码值是 65,字符变量 c1 的值是 'A',c2 的值是 'D'.执行语句 printf("%d,%d",c1,c2-2);后,输出结果是 ().A、65,66B、A,BC、A,68D、65,68答案: A100.在 C语言中 ,要求参加运算的数必须是整数的运算符是:().A、/B、!C、==D、%答案: D101.已定义 :float x=1.25,y=3.37;根据下面的输出结果 ,正确的输出语句是 ().x=1.250000,y=3.370000A、printf("x=%f,y=%f\n",x,y);B、printf("x=%8.2f,y=%8.2f",x,y);C、printf("x=%7f,y=%7f\n",x,y);D、printf("x=%-8.2f,y=%-8.2f\n",x,y);答案: A102.应用缓冲文件系统对文件进行读写操作 ,关闭文件的函数名为 ().A、fread()B、fwriteC、fclose()D、close()答案: C103.若有以下说明 ,则对结构体变量 stud1 中成员 age的不正确引用是().struct student{int age;int num;}stud1,*p;p=&stud1;A、(*p).ageB、student.ageC、p->ageD、stud1.age答案: B104.C语言中 ,以下几种运算符的优先次序()的排列是正确的 .A、由高到低为 :算术运算符 ,关系运算符 ,!,&&,||, 赋值运算符B、由高到低为 :算术运算符 ,关系运算符 ,赋值运算符 ,!,&&,||C、由高到低为 :!,算术运算符 ,关系运算符 ,&&,||, 赋值运算符D、由高到低为 :!,&&,||, 算术运算符 ,赋值运算符答案: C105.以下程序的输出结果是 ().main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、1C、2D、4答案: A106.在 C语言中 ,char 型数据在内存中的存储形式是().A、补码B、ASCII码C、反码D、原码答案: B。
c语言期末考试练习题1(含答案)
一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int main( ){ int i,j,x=0;for (i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if (j%2) continue;x++;}x++;}printf ("x= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
C语言期末考试必考精华试题(含答案)
第一章c语言概述1.运行C程序的步骤:编辑、编译、连接、运行。
2.在一个C语言程序中()。
BA.main函数必须出现在所有函数之前B.main函数可以在任何地方出现C.main函数必须出现在所有函数之后D.main函数必须出现在固定位置3.C程序总是从()开始执行。
AA.main函数B.程序的第一个函数C.任意指定的函数D.程序的第一条语句第二章算法第三章数据类型1.以下属于C语言的基本数据类型的是()。
BA.整型、实型、逻辑型B.整型、实型、字符型C.整型、字符型、逻辑型D.整型、实型、逻辑型、字符型2.若n =8,a=7, 则a %=(n %=3)的值是()。
BA.0 B.1 C.2 D.33.表达式2/5+7%2*(int)4.7/3的值是()。
CA.1.4 B.1.400000 C.1 D.1.0000004.当c的值不为0时,能正确将c的值赋给变量a、b的是()。
CA.c=a=b B.(a=c)||(b=c) C.(a=c)&&(b=c) D.a=c=b5.若变量已正确定义并赋值,以下符合C语言语法的表达式是()。
BA.a:=b+1B.a=b=c+2C.int 18.5%3D.a=a+7=c+b6.以下不能定义为用户标识符是()。
DA.MainB._0C._intD.sizeof7.以下选项中,不能作为合法常量的是()。
BA.1.234e04B.1.234e0.4C.1.234e+4D.1.234e08.已知英文字母a的ASCII码值是十六进制数61H,字母d的ASCII码值是()。
DA.34HB.54HC.24HD.64H10.下列选项中,不正确的赋值语句是()。
AA.x B.x1 = x2 = x3 = 0 C.k = i = = j D.a= bc = 111. 以下程序的输出结果是()。
Dmain(){int k=15;printf("%d,%o,%x\n",k,k,k);}A.15,017,0xfB.15,15,15C.15,0xf,017D.15,17,f 第四章顺序程序设计1.若int a,b,c;则从键盘给a,b,c输入数据,正确的输入语句是()。
C语言第一章习题
第一章C语言概述一、选择题1.一个C程序的执行是从( A )。
A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束2.在C程序中,main函数的位置( B )。
A.必须作为第一个函数B.必须作为最后一个函数C.可以任意D.必须在它所调用的函数之后3.一个C程序是( B )构成的。
A.一个主程序和若干个子程序组成B.一个或多个函数C.若干过程组成D.若干子程序组成4. ( A )是C程序的基本构成单位A.函数 B.函数和过程 C.超文本过程D.子程序5.以下叙述不正确的是( D )。
A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C.C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面6.“连接程序(linker)”将一个程序的所有目标程序和系统的库文件以及系统提供的其它信息连接起来,最终生成一个可执行的二进制文件,它的后缀是( D )。
A.cpp B.obj C.lib D.exe7.用C语言编写的代码程序( C )。
A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行8.以下叙述正确的是( C )。
A.在C程序中,main函数必须位于程序的最前面。
B.C程序每行中只能写一条语句。
C.C语言本是没有输入输出语句。
D.在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
9.C语言程序的注释是( A )。
A.以/*开始,以*/结束B.以/*开始,以/*结束C.以//开头,以//结束D.以/*开始,以//结束10.任何C语句必须以( B )结束A.句号 B.分号 C.冒号 D感叹号二、填空题1.以/*开始,以*/结束,在/*和*/之间的部分即为(注释)。
2.一个C程序有且仅有一个(main )函数,它是程序的入口和出口。
C语言期末考试题库(第一章 c语言基础知识)
C语言考研题库(第一章c语言基础知识)一、单项选择1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为().A、关系运算,赋值运算,算术运算B、算术运算,关系运算,赋值运算C、算术运算,赋值运算,关系运算D、关系运算,算术运算,赋值运算答案:B2.下述正确的C语言常量是:().A、E2B、3e-3C、1.5E2.5D、5.0E答案:B3.使用共用体变量,不可以().A、进行动态管理B、节省存储空间C、同时访问所有成员D、简化程序设计答案:C4.为表示关系x>=y>=z,应使用C语言表达式为:()A、(x>=y)&(y>=z)B、(x>=y>=z)C、(x>=y)&&(y>=z)D、(x>=y)AND(y>=z)答案:C5.以下程序的输出结果是().main(){char str[]="ABCD",*p=str;printf("%s\n",p);}A、68B、ABCDC、不确定的值D、字符D的地址答案:B6.char a[10];不能将字符串"abc"存储在数组中的是().A、a="abc";B、a[0]=0;strcat(a,"abc");C、int i;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;D、strcpy(a,"abc");答案:A7.fscanf函数的正确调用形式是().A、fscanf(文件指针,格式字符串,输入表列);B、fscanf(格式字符串,文件指针,输出表列);C、fscanf(fp,格式字符串,输出表列);D、fscanf(格式字符串,输出表列,fp);答案:A8.下列数组说明中正确的是().A、int array[][]={1,2,3,4,5,6,7,8,9,10};B、int array[][][5]={1,2,3,4,5,6,7,8,9,10};C、int array[][4]={1,2,3,4,5,6,7,8,9,10};D、int array[3][]={1,2,3,4,5,6,7,8,9,10};答案:C9.以下选项中,与k=n++完全等价的表达式是().A、n=n+1,k=nB、k+=n+1C、k=++nD、k=n,n=n+1答案:D10.针对下列程序段回答问题().for(t=1;t<=100;t++){scanf("%d",&x);if(x<0)continue;printf("%3d",t);}A、printf函数永远也不执行B、当x<0时整个循环结束C、x>=0时什么也不输出D、最多允许输出100个非负整数答案:D11.以下正确的字符串常量是()A、"\\\"B、'A'C、'abc'D、OlympicGames答案:A12.如下说法不正确的是().A、若a为真b为假,则a||b为真B、若a为真b为假,则a&&b为假C、若a为真b为假,则! a-1&&b为真D、若a为真,则! a为假答案:C13.C语言中,用于结构化程序设计的三种基本结构是().A、for,while ,do-whileB、顺序结构,选择结构,循环结构C、if,switch,breakD、if,for,continue答案:B14.若有以下的定义:int t[3][2];能正确表示t数组元素地址的表达式是().A、t[3]B、t[2]C、&t[3][2]D、&t[1]答案:B15. 下列运算符中优先级最高的是().A、<B、&&C、+D、!=答案:C16.C语言程序中,必须有的函数是().A、main()B、#include"stdio.h"C、scanfD、printf答案:A17.已定义char a[10];和char *p=a;,下面的赋值语句中正确的是().A、*p="Turbo c";B、p="Turbo c";C、a[10]="Turbo c";D、a="Turbo c";答案:B18.以下叙述正确的是().A、可以把if定义为用户标识符,但不能把define定义为用户标识符B、define和if 都不能定义为用户标识符C、可以把define和if定义为用户标识符D、可以把define定义为用户标识符,但不能把if定义为用户标识符答案:D19.若已定义x为int类型变量,下列语句中,说明指针变量p的正确语句是().A、*p=*x;B、int *p=x;C、int *p=&x;D、int p=&x;答案:C20.以下叙述中,正确的是().A、花括号"{"和"}"只能作为函数体的定界符B、构成C程序的基本单位是函数,所有函数名都可以由用户命名C、分号是C语句之间的分隔符,不是语句的一部分D、C程序中,注释部分可以出现在程序中,任意合适的地方答案:D21.以下能对二维数组a进行正确初始化的语句是().A、int a[][3]={{1,2,3},{4,5,6}};B、int a[2][]={{1,0,1},{5,2,3}};C、int a[2][4]={{1,2,3},{4,5},{6}};D、int a[][3]={{1,0,1}{},{1,1}};答案:A22.C语言中,double 类型数据占().A、8个字节B、4个字节C、2个字节D、1个字节答案:A23.经过下列的语句int j,a[10],*p=a;定义后,下列语句中,合法的是().A、p=a[5];B、p=a[2]+2;C、p=p+2;D、p=&(j+2);答案:C24.定义char s[10],*p=s;,则下面编译不能通过的语句是().A、s=p+s;B、s[2]=p[4];C、p=s+5;D、*p=s[0];答案:A25.以下函数调用语句中,实参的个数是().exce((v1,v2),(v3,v4,v5),v6);A、3B、4C、5D、6答案:A26.若x=2,y=3,则x||y的结果是()A、0B、3C、2D、1答案:D27.已知x=43,ch='A',y=0;,则表达式(x>=y&&ch<'B'&&!y)的值是().A、"假"B、语法错C、0D、128.下面四个选项中均是不合法的浮点数的选项是().A、-e3.234 1e3B、123 2e4.2.e5C、-.18 123e4 0.0D、160.0.12 e3答案:B29.以下函数调用语句中,实参的个数是().fun c((e1,e2),(e3,e4,e5));A、3B、5C、语法错误D、2答案:D30.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().y+x=4.62,y-x=2.12A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);B、printf("y+x=%f,y-x=%f\n",y+x,y-x);C、printf("y+x=%6f,y=%6f\n",y+x,y-x);D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);答案:A31.执行下面程序段后,ch的值是().char ch='a';ch=(ch>='A'&&ch<='Z')?(ch+32):ch;A、AB、zC、ZD、a32.在C语言的函数中,下列正确的说法是().A、数组名不能作形参B、可以有也可以没有形参C、形参必须是变量名D、必须有形参答案:B33.以下正确的描述是().A、在循环中,break语句不能独立出现B、只能用continue语句来终止本次循环C、goto语句只能用于退出多层循环D、switch语句中,不能出现continue语句答案:B34.C语言中,运算对象必须是整型的运算符是().A、〈=B、%=C、=D、/答案:B35.下面不正确的字符串常量是().A、"0"B、""C、"12'12"D、'abc'答案:D36. fwrite函数的一般调用形式是().A、fwrite(buffer,count,size,fp);B、fwrite(fp,count,size,buffer);C、fwrite(fp,size,count,buffer);D、fwrite(buffer,size,count,fp);答案:D37.以下定义语句中错误的是().A、int a[]={1,2};B、int n=5,a[n];C、char *a[3];D、char s[10]="test";答案:B38.下列正确的标识符是().A、%yB、a+bC、6aD、_do答案:D39.C语言源程序的基本单位是().A、子程序B、过程C、标识符D、函数答案:D40. 若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时, ()是正确的输入A、20 30 40B、2030,40C、20,30,40D、20,30 40答案:C41.设有如下程序,请选择正确答案().#include<stdio.h>main(){int **k,*j,i=100;j=&i,k=&j;printf("%d\n",**k);}A、100B、i的地址C、j的地址D、运行错误答案:A42.若定义:int a=511,*b=&a;,则printf("%d\n",*b);的输出结果为().A、a的地址B、无确定值C、511D、512答案:C43.以下叙述中,不正确的是().A、C程序中的#include和#define 均不是C语句B、在C程序中,赋值运算符的优先级最低C、在C程序中,j++;是一条赋值语句D、一个好的程序应该有详尽的注释答案:B44.下面叙述中错误的是().A、若一个函数没有return语句,则什么值也不会返回B、一般来说,函数的形参和实参的类型要一致C、函数的形式参数,在函数未被调用时就不被分配存储空间D、若函数的定义出现在主调函数之前,则可以不必再加说明答案:A45.设有如下程序段:int k=10;while(k==0)k--;,则下述说明中正确的是().A、循环体执行一次B、死循环C、循环体一次也不执行D、循环体执行10次答案:C46.表示关系x>0且y<=10的C语言表达式为().A、(x<=0)AND(y<=10)B、(x>0)&&(y<=10)C、x>0,y<=10D、(x<=0)&(y<=10)答案:B47.以下叙述不正确的是().A、C程序的基本组成单位是函数B、在C程序中,注释说明只能位于一条语句的后面C、一个C源程序可由一个或多个函数组成D、一个C源程序必须包含一个main()函数答案:B48.C语言提供的合法的数据类型关键字是().A、floatB、unsignedC、charD、int eger答案:B49.所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:().A、6B、7C、8D、2答案:C50.以下符合C语言语法的赋值表达式是().A、d=9+e+f=d+9B、d=9+e,e++,d+9C、d=9+eD、d=9+e++=d+7答案:C51.下面对函数的叙述,正确的是().A、函数中无论是否有return语句,都能返回正确值B、函数中没有return语句,说明不带回值C、函数不能嵌套定义D、函数的返回值是通过return语句获得的答案:C52.整型变量x=1,y=3,经下列计算后,x的值不等于6的是().A、x=(x=1+2,x*2)B、x=9-(--y)-(--y)C、x=y*4/2D、x=y>2?6:5答案:B53.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:() x=y=z=1;t=++x||++y&&++z;A、1B、不定值C、2D、0答案:A54.下列字符序列中不可用作C语言标识符的是().A、a_1B、#abC、symbolD、b70答案:B55.C语言执行程序的开始执行点是().A、包含文件中的第一个函数B、程序中,第一个函数C、程序中的main()函数D、程序中,第一条可以执行语言答案:C56.下列运算符优先级最低的是().A、&&B、+C、=D、!答案:C57.下面所列的语句行中能正确进行赋字符串操作的语句行是().A、char st[4][5]={"ABCDE"};B、char s[5]={'A','B','C','D','E'};C、char *s;scanf("%c",s);D、char *s;s="ABCDE";答案:D58.以下正确的函数定义形式是().A、double fun(int x,int y)B、double fun(int x;int y)C、double fun(int x,y);D、double fun(int x,int y);答案:A59.下列变量中合法的是().A、$ABCB、B.C.TomC、3a6bD、_6a7b答案:D60.以下标识符中可以作为用户函数名的是().A、unionB、intC、structD、go_to答案:D61.判断两个字符串是否相等,正确的表达方式是().A、while(strcmp(s1,s2)=0)B、while(strcmp(s1,s2)==0)C、while(s1==s2)D、while(s1=s2)答案:B62.下面各语句中能正确进行赋字符串操作的语句是().A、char st[][]={"ABCDE"};B、char s2[6]={'A','B','C','D','E'};C、char s1[5][]={"ABCDE"};D、char s[5]={'A','B','C','D','E'};答案:B63.下列数据中属于"字符串常量"的是().A、'ABC'B、ABCC、"ABC"D、'A'答案:C64.C语言中的文件的存储方式有().A、可以顺序存取,也可随机存取B、只能随机存取(或直接存取)C、只能顺序存取D、只能从文件的开头进行存取答案:A65.putchar函数可以向终端输出一个().A、字符或字符型变量值B、整型变量表达式值C、实型变量值D、字符串答案:A66.下面叙述中正确的是().A、声明函数时必须明确其参数类型和返回类型B、函数可以返回一个值,也可以什么值也不返回C、空函数在不完成任何操作,所以在程序设计中没有用处D、对于用户自己定义的函数,在使用前必须加以声明答案:B67.以下标识符中不能作为合法的C用户定义标识符的是().A、_123B、voidC、ifD、a3_b3答案:B68.将字符串Turbo赋给字符数组word,则下面错误的说明语句是().A、char word[]={"Turbo\0"};B、char word[]="Turbo\0";C、char word[]={'T','u','r','b','o','\0'};D、char word[]='Turbo\0';答案:D69.用下面的scanf函数输入数据,使得i=10,j=15,选择正确的键盘输入方法:().(用[CR]表示回车)main(){int i,j;scanf("i=%d,j=%d",&i,&j);}A、i=10,j=15[CR]B、i=10Uj=15[CR]C、10U15[CR]D、10,15[CR]答案:A70.跳过当前循环体内容,继续执行下一次循环的语句是()A、continue语句B、return语句C、break语句D、空语句答案:A71.设有以下定义:int a[10]={1,2,3,4,5,6,7,8,9,10};int *p=a;,则数值为6的表达式是().A、p+5B、*p+6C、*p+=5D、*(p+6)答案:C72.以下程序段执行后输出的结果是().char str[]="ABCD",*p=str;printf("%d\n",*(p+4));A、不确定的值B、字符'D'的地址C、68D、0答案:D73.用下面的scanf函数输入数据,使得i=10,k=15选择正确的键盘输入方法().(用"[CR]"表示回车,U表示空格)main(){int i,k;scanf("i=%d,k=%d",&i,&k);}A、10U15[CR]B、i=10,k=15[CR]C、i=10[CR]k=15[CR]D、10,15[CR]答案:B74.设有如下的程序段:char str[]="Hello";char *ptr;ptr=str;执行完上面的程序段后,*(ptr+5)的值为().A、'\0'B、'o'C、'o'的地址D、不确定的值答案:A75.定义int a[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;,其中,0≤i≤9,则对a数组元素的引用不正确的是().A、a[p-a]B、*(&a[i])C、p[i]D、*(*(a+i))答案:D76.以下字符中,不是转义字符的是().A、'\b'B、'\\'C、'\c'D、'\a'答案:C77.设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是:()A、10<a<15B、!(a<=10)&&!(a>=15)C、a>10&&a<15D、a==11||a==12||a==13||a==14答案:A78.在C语言中,存储类型为()的变量只在使用它们时才占用存储空间.A、static 和autoB、register和autoC、register和externD、static 和register答案:B79.已知键盘输入a=4,b=3,下面程序输出的结果是().main(){int a,b,s;scanf("%d%d",&a,&b);s=a;if(a<b)s=b;s=s*s;printf("%d\n",s);}A、13B、9C、16D、15答案:C80.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是().A、"ab"B、"wb+"C、"rb+"D、"ab++"答案:B81.设有如下说明和语句,请选出哪个是对c数组元素的正确引用(). int c[4][5],(*cp)[5];cp=c;A、*(*cp+2)B、*(cp+3)C、cp+1D、*(cp+1)+3答案:A82.以下标识符中不能作为合法的C用户定义标识符的是().A、forB、printfC、sizeofD、WORD答案:C83.在定义构造数据类型时,不能().A、末尾不写分号B、说明变量C、初始化D、说明存储类型答案:A84.以下叙述中,错误的是().A、用户所定义的标识符应尽量做到"见名知意"B、用户所定义的标识符必须以字母或下划线开头C、用户所定义的标识符允许使用关键字D、用户定义的标识符中,大,小写字母代表不同标识答案:C85.选择正确的输入语句().:(其中:char string[20];)使得string的内容为"I am student".A、scanf("%s",string);B、scanf("%c",&string);C、scanf("%s",&string);D、gets(string);答案:D86.以下选项中,合法的实型常数是().A、.2E0B、1.3EC、E-3D、5E2.0答案:A87.若int a=2,则执行完表达式a -=a+=a*a后,a的值是().A、-4B、0C、-8D、-2答案:B88.设a,b和c都是int型变量,且a=3,b=4,c=5,下面表达式中值为0的表达式是().A、a<=bB、'a'&&'b'C、!((a<b)&&!c||1)D、a||b+a&&b-c答案:C89.定义char b[5],*p=b;,则能正确赋值的语句是().A、*p="abcd";B、p="abcd";C、*b="abcd";D、b="abcd";答案:B90.能正确表示a>=10或a<=0的关系表达式是:()A、a>=10||a<=0B、A>=10 or a<=0C、a>=10&a<=0D、a>=10|a<=0答案:A91.设有如下定义:struct sk{int a;float b;}data,*p;若要使p指向data中的a域,正确的赋值语句是().A、p=(struct sk*)data.a;B、p=&data.a;C、*p=data.a;D、p=(struct sk*)&data.a;答案:D92.若变量已正确定义且k 的值是4,计算表达式(j=4,k--)后,j和k的值为().A、j=3,k=3B、j=3,k=4C、j=4,k=4D、j=4,k=3答案:D93.当说明一个结构体变量时系统分配给它的内存是().A、结构中,第一个成员所需内存量B、成员中,占内存量最大者所需的容量C、结构中,最后一个成员所需内存量D、各成员所需内存量的总和答案:D94.int(*p)[6];它的含义为().A、具有6个元素的一维数组B、定义了一个指向具有6个元素的一维数组的指针变量C、指向整型指针变量D、指向6个整数中的一个的地址答案:B95.若有说明语句:char c='\72';,则变量c().A、包含1个字符B、说明不合法,c的值不确定C、包含2个字符D、包含3个字符答案:A96.以下表述中正确的是().A、do-while 循环中while 语句不能省略B、在do-while 循环中while 表达式的值不能为"假"C、除了for 循环,其他循环中都不能使用复合语句D、do-while 循环中while(表达式)后面不能加分号答案:A97.能正确表示a和b同时为正或同时为负的逻辑表达式是:()A、(a+b>0)&&(a+b<=0)B、(a>=0||b>=0)&&(a<0||b<0)C、a*b>0D、(a>=0&&b>=0)&&(a<0&&b<0)答案:C98.下面错误的说明语句是().A、int(*a)[10];B、int a[][];C、int a['a'];D、int *a[10];答案:B99.已知字符'A'的ASCⅡ代码值是65,字符变量c1的值是'A',c2的值是'D'.执行语句printf("%d,%d",c1,c2-2);后,输出结果是().A、65,66B、A,BC、A,68D、65,68答案:A100. 在C语言中,要求参加运算的数必须是整数的运算符是:().A、/B、!C、==D、%答案:D101.已定义:float x=1.25,y=3.37;根据下面的输出结果,正确的输出语句是().x=1.250000,y=3.370000A、printf("x=%f,y=%f\n",x,y);B、printf("x=%8.2f,y=%8.2f",x,y);C、printf("x=%7f,y=%7f\n",x,y);D、printf("x=%-8.2f,y=%-8.2f\n",x,y);答案:A102.应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为().A、fread()B、fwriteC、fclose()D、close()答案:C103.若有以下说明,则对结构体变量stud1中成员age的不正确引用是(). struct student{int age;int num;}stud1,*p;p=&stud1;A、(*p).ageB、student.ageC、p->ageD、stud1.age答案:B104.C语言中,以下几种运算符的优先次序()的排列是正确的.A、由高到低为:算术运算符,关系运算符,!,&&,||,赋值运算符B、由高到低为:算术运算符,关系运算符,赋值运算符,!,&&,||C、由高到低为:!,算术运算符,关系运算符,&&,||,赋值运算符D、由高到低为:!,&&,||,算术运算符,赋值运算符答案:C105.以下程序的输出结果是().main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A、3B、1C、2D、4答案:A106.在C语言中,char型数据在内存中的存储形式是().A、补码B、ASCII码C、反码D、原码答案:B。
C语言考试
C. (###a=25,b=14,c=19) D. (###a=26,b=13,c=19)
答案:D
4、以下程序的输出结果是( )。
main()
{
int i=010,j=10,k=0x10;
printf("%d,%d,%d\n",i,j,k);}
{
char c1='6',c2='0';
printf("%c,%c,%d,%d\n",c1,c2,c1-c2,c1+c2);
}
A.因输出格式不合法,输出出错信息B.6,0,6,102
C.6,0,7,6 D.6,0,5,7
答案:B
7、设有如下定义:int x=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));输出结果是( )。
}
答案:D
6、在C语言中,多分支选择结构语句为
switch(c)
{case常量表达式1:语句1;
……
case常量表达式n-1:语句n-1;
default语句n;}
其中括号内表达式c的类型( )。
A.可以是任意类型B.只能为整型
C.可以是整型或字符型D.可以为整型或实型
答案:C
7、当a = 1, b = 3 , c = 5, d = 4时,执行完下面程序段后x的值为( )。
答案:正确
3、健壮的算法不会因为非法输入而出现莫名其妙的状态。()
答案:正确
第三章数据类型运算符与表达式
一、单项选择题
1、下列字符串是标识符的是( )。
c语言大一期末复习题库
c语言大一期末复习题库C语言作为计算机科学与技术专业的基础课程,对于大一学生来说,掌握其基本概念和编程技巧至关重要。
以下是一份C语言大一期末复习题库,旨在帮助同学们系统复习和巩固所学知识。
# 一、选择题1. C语言的标准输入输出函数分别是:A. `printf`, `scanf`B. `print`, `read`C. `show`, `input`D. `display`, `get`2. 以下哪个不是C语言的基本数据类型?A. `int`B. `float`C. `string`D. `double`3. 在C语言中,哪个关键字用于定义函数?A. `function`B. `def`C. `func`D. `void`4. 下面哪个是正确的C语言数组声明?A. `int numbers[] = {1, 2, 3};`B. `int numbers(3) = {1, 2, 3};`C. `int [3] numbers = {1, 2, 3};`D. 以上都是5. 在C语言中,`break`语句的作用是:A. 跳过当前循环的剩余部分B. 直接跳出循环体C. 继续下一次循环D. 退出程序# 二、填空题1. C语言中,`printf`函数用于输出,其返回类型是______。
2. 在C语言中,定义一个整型变量`x`的语句是______。
3. C语言中,`for`循环的基本结构是:for(______,______,______) { }。
4. 一个C语言程序的执行从______函数开始。
5. 在C语言中,`switch`语句中`case`后面跟的是______。
# 三、简答题1. 解释C语言中的指针是什么,并给出一个使用指针的示例。
2. 描述C语言中函数的作用,并给出一个自定义函数的示例。
3. 什么是C语言中的结构体?请简述其用途。
# 四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和、差、积、商。
C语言题库(前三章)
第一章C语言基础知识1.1 选择题1. 以下不是C语言的特点的是()。
A.语言简洁紧凑B.能够编制出功能复杂的程序C.C语言可以直接对硬件操作D.C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5.下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.V oid C._3com_ D.int9.一个C程序是由()。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成10. C语言程序的基本单位是()。
A.程序行B.语句C.函数D.字符11.下列说法中,错误的是()。
A.每个语句必须独占一行,语句的最后可以是一个分号,也可以是一个回车换行符号B.每个函数都有一个函数头和一个函数体,主函数也不例外C.主函数只能调用用户函数或系统函数,用户函数可以相互调用D.程序是由若干个函数组成的,但是必须有、而且只能有一个主函数12.以下说法中正确的是()。
A.C语言程序总是从第一个定义的函数开始执行B.在C语言程序中,要调用的函数必须在main( )函数中定义C.C语言程序总是从main( )函数开始执行D.C语言程序中的main( )函数必须放在程序的开始部分13. C 编译程序是( )。
C语言基础知识习题答案——第一章
第一章C语言基础知识一,选择题1 答案是AA正确B {}可以作为复合语句的标志C main 函数不是用户命名的D 分号是语句结束的标志,肯定是语句的一部分做这个题目需要对书上的概念透彻的理解2 答案是AA 错误用户标识符:命名时,标识符的选择由用户自定,但是不能与关键字相同,所以A选项错误。
这个题目考察用户标识符3 答案是B用户标识符是标识符,所以可以是有下划线,但是中划线不属于字母,数字,下划线其中一种。
这个题目考察用户标识符的概念。
4 答案是Bdefine 是预定义标识符,而预定义标识符可以是用户标识符,所以define可以是用户标识,if 是关键字,而关键字不能是用户标识符,所以if不可以是用户标识符5 答案是Dlong 是关键字,参照附录二注:6--13 考察用户标识符概念6 答案是DD答案以数字2开头了,不符合标识符定义7 答案是CC答案以数字开头了8 答案是Dint 是关键字9 答案是B答案A 是关键字,答案C是以数字开头了,不符合概念,答案D出现了小数点10 答案是A答案A出现了小数点11 答案是C答案C 以数字开头了12 答案是AB答案中float 是关键字,C答案中3c以数字3开头了,D答案中-5d 中- 不属于字母,数字,下划线中一种13 答案是AB答案中-max中-错误,C答案中3COM以字母3开头了,D答案中int 是关键字,不是用户标识符14 答案是BA答案中15. 后面不应该有点,C答案中出现了逗号,D中字母B有问题15 答案是DVisual C++6.0中int类型的变量占的字节数为4。
16 答案是BB中出现了8,而八进制只能有0到7组成17 答案是D答案D中开头是0不是o18 答案是C答案A中E后面是整数,0.5是小数答案B 中E后面不能为空答案D中E前面不能为空本题目考察指数的表示形式19 答案是C答案A中2.0有问题,不能为小数形式答案B中E前面不能为空答案D中E后面不能为空本题目考察指数的表示形式20 答案是AB中八进制中不能出现数字8,C中e后面不能是小数,D中e后面不能为空21 答案是BB中0.4是小数,不正确22 答案是CC中0.5是小数,不正确23 答案是D3.6-5/2+1.2+5%2=3.6-2+1.2+1=3.8本题目考察算术运算符,需要注意整数除以整数结果只能是整数24 答案是D%不能用于实型的计算25 答案是DD答案中$不属于字母,数字,下划线26 答案是AA答案是逗号表达式,B答案中x+1=y是赋值表达式,左边只能是变量,而这里是x+1, 同理答案C中x+10也是错误的,在D答案中,考察的是强制类型转换,正确的是(double)x/1027 答案是A本题考察的是注释需要注意的地方,具体解答见课本第2页中间部分28 答案是B答案A中n2没有定义,答案C中在定义f之前不能使用它,答案D 中E后面必须是整数29 答案是C考察的是强制类型转换,正确的是k%(int)f30 答案是D本题目类似与第七课时的例一,解题方法是要抓住++m,--n,--m,表达式的值是变量变化之后的值,而n--表达式的值是变量n变化之前的值31 答案是B本题目考察的是负整数与无符号正整数在计算机中存放的格式的一样的,但表示的不同的两个数32 答案是CA答案中%运算对象不能为实型,26.8错误,B答案中考察的赋值运算符,赋值运算符左边必须是变量,所以赋值运算符左边1+2错误,同理答案D错误33 答案是C本题目考察的是课本第15页的关于自加与自减运算符的第一点说明,即增量运算符的运算对象只能是变量,而在C答案中++(i+1)中,i+1是表达式34 答案是B本题目考察的是整数除以整数结果是整数,在B答案中1/2结果是0,导致整个表达式的值是0,明显是错误的35 答案是D对于++、--单目运算符来说,其运算对象可以是char型、int型和float 型变量36 答案是A本题目主要考察n++表达式的值是n变化之前的值,然后使n的值增加137 答案是Bc=a/b+0.4 c=8/5+0.4 c=1+0.4 c=1.4 因为c 是int 型的,所以c的值是1 ,做此题目需要仔细阅读题目38 答案是D(int)a+b/b=(int)5.5+2.5/2.5=5+1.000000=b=6.000000同样a,b的类型是double型的39 答案是Dlong 和short不能相互修饰40 答案是C标识符中不能有$41答案是CA选项中,在变量赋值时不能赋给表达式,而y*5是表达式;选项B 中进行强制类型转换时,类型标识符要加上括号,所以错误;选项D 中,%(求余运算符)运算对象只能是整形数。
c语言期末考试题库完整
c语言期末考试题库完整一. 填空题1. C语言中,______是一种具有特殊含义的标识符,比如main、if、for等。
2. 在C语言中,使用______关键字定义函数。
3. 在C语言中,______是一种数据类型用来存储字符。
4. C语言中,______操作符可用于将一个值赋给变量。
5. ______是C语言中用来处理条件判断的控制结构。
6. C语言中,______和______是用来循环执行一段代码的控制结构。
7. 在C语言中,使用______关键字定义结构体类型。
二. 选择题1. 下列哪个是C语言的基本数据类型?a) stringb) floatc) booleand) character2. 在C语言中,下列输出语句的结果是什么?printf("%d", 10/3);a) 3.33b) 3c) 3.0d) 03. 在C语言中,下列循环结构中,哪个适合用于已知循环次数的情况?a) for循环b) while循环c) do-while循环d) switch循环4. 在C语言中,下列常用的逻辑运算符中,哪个用于实现逻辑与操作?a) &&b) ||c) !d) |5. 下列关于指针的描述中,正确的是:a) 指针是一种数据类型,用于存储变量的地址。
b) 指针只能指向整型变量。
c) 指针无法修改所指向变量的值。
d) 指针的声明必须包含地址运算符(*)三. 简答题1. 请简要介绍C语言的基本数据类型,包括其名称和用途。
2. 请解释C语言中的条件语句if-else的使用方法,并提供一个示例代码。
3. 请解释C语言中的循环结构for的使用方法,并提供一个示例代码。
4. 请解释C语言中的数组的概念,并提供一个示例代码。
5. 请解释C语言中的结构体的概念,并提供一个示例代码。
四. 编程题请编写一个C语言程序,实现以下功能:- 定义一个结构体,包含学生的姓名(字符串类型)、年龄(整型)和成绩(浮点型)。
C语言试题库(完整版)
C语言试题库一、单项选择第一章C语言概述(1)一个C程序的执行是从A、本程序的MAIN函数开始,到MAIN 函数结束。
B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。
C、本程序的MAIN函数开始,到本程序的最后一个函数结束。
D、本程序文件的第一个函数开始,到本程序的MAIN函数结束。
(2)以下叙述正确的是A、在C程序中,MAIN函数必须位于程序的最前面。
B、C程序的每行中只能写一条语句。
C、C语言本身没有输入输出语句。
D、在对一个C程序进行编译的过程中,可发现注释中的拼写错误。
(3)C语言规定,在一个源程序中,MAIN主函数的位置是在:A、必须在最前面。
B、必须在系统调用的库函数的后面C、可以在任意位置。
D、必须在最后面(4)一个C程序是由:A、一个主程序和若干子程序组成B、函数组成C、若干过程组成D、若干子程序组成(5)以下叙述不正确的是:A、一个C源程序可由一个或多个函数组成B、一个C源程序必须包含一个MAIN函数C、C程序的基本组成单位是函数D、在C程序中,注释说明只能位于一条语句的后面第二章数据类型、运算符与表达式(1)若x, i, j, k都是int型变量,则计算下面表达式后,x的值为x=(i=4, j=16, k=32)A、4B、16C、32D、52(2)下列四组选项中,均不是C语言键字的选项是A、define , IF, typeB、getc, char, printfC、include, scanf, caseE、i f, 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)以下程序的运行结果是#incl ude “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语言期末考试题库试题及答案
1【程序填空】-—-—--—-—————-——--------—--—----————--———-—————---—---—-—题目:下面函数为二分法查找key值。
数组中元素已递增排序,若找到key则返回对应的下标,否则返回—1.——---——-—--—---————--—--—--—-—--—--—---———-——-——-——-—-—*/#include〈stdio.h>fun(int a[],int n,int key){int low,high,mid;low=0;high=n—1;/***********SPACE***********/while(【low〈=high】){mid=(low+high)/2;/***********SPACE***********/if(key〈a[mid])【high=mid—1】;/***********SPACE***********/else if(key〉a[mid]) 【low=mid+1】;/***********SPACE***********/else 【return(mid)】;}return -1;}void main(){int a[10]={1,2,3,4,5,6,7,8,9,10};int b,c;b=4;c=fun(a,10,b);if(c==-1)printf("not found");else printf("position %d\n",c);}/*—---—--—-———————-————--—-—--——-—-—————--—-—----—-----——2 【程序填空】-———-————---——----—-——-——-——-——--——----—---—---————-———-—题目:求n!,n值由键盘输入.—-—————-———-----—--———-—-—-—-—-—--——-----—-———-—----———*/#include〈stdio.h>void main(){int n,i;float t;printf("please input n(n>=0):");/***********SPACE***********/scanf("%d”,【&n】);i=1;t=1.0;/***********SPACE***********/while(【i<=n】)/***********SPACE***********/{ 【t*=i】i++;}printf("%d!=%f",n,t);}a/*————————-—---———--—--——---——-—-—--——-----—-———-——-—-———3 【程序填空】----——---—--—--—-—-------———--—----——---——-—--——-——-—-———题目:以下程序的功能是统计一个字符串中的字母、数字、空格、和其它字符的个数。
大学C语言期末考试试题库试题和答案解析汇总
1.下列定义变量的语句中错误的是__D____。
A、int _intB、double int _C、char ForD、float US$知识点:常量、变量和标识符2.以下不合法的用户标识符是__C____。
A、j2_KEYB、DoubleC、4dD、_8_知识点:常量、变量和标识符3.以下4组用户定义标识符中,全部合法的一组是__A____。
A、_main enclude sinB、If -max turboC、txt REAL 3COMD、int k_2 _001知识点:常量、变量和标识符4.以下定义语句中正确的是__C____。
A、char a='A' b='B';B、float a=b=10.0;(正解a=10.0 b=10.0)C、int a=10,*b=&a;D、float *a,b=&a;知识点:常量、变量和标识符5.以下不能定义为用户标识符的是__D____。
A、scanfB、VoidC、_3com_D、int知识点:常量、变量和标识符6.以下有4组用户标识符,其中合法的一组是___C___。
A、For -sub CaseB、4d DO SizeC、f2_G3 IF abcD、WORD Void define 知识点:常量、变量和标识符7.C语言中最简单的数据类型包括_B_____。
A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型知识点:常量、变量和标识符8.下列选项中,合法的C语言关键字是__D____。
A、VARB、cherC、integerD、default知识点:常量、变量和标识符9.以下不能定义为用户标识符的是__D____。
A、MainB、_0C、_intD、sizeof知识点:常量、变量和标识符10.下列叙述中正确的是_D_____。
A、C语言中既有逻辑类型也有集合类型B、C语言中没有逻辑类型但有集合类型C、C语言中有逻辑类型但没有集合类型D、C语言中既没有逻辑类型也没有集合类型知识点:常量、变量和标识符11.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是____C__。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
B、#ab
C、symbol
D、b70
答案:B
55.C语言执行程序的开始执行点是().
A、包含文件中的第一个函数
B、程序中,第一个函数
C、程序中的main()函数
D、程序中,第一条可以执行语言
答案:C
56.下列运算符优先级最低的是().
A、&&
B、+
C、=
D、!
答案:C
57.下面所列的语句行中能正确进行赋字符串操作的语句行是().A、char st[4][5]={"ABCDE"};
C、函数的形式参数,在函数未被调用时就不被分配存储空间
D、若函数的定义出现在主调函数之前,则可以不必再加说明答案:A
45.设有如下程序段:
int k=10;
while(k==0)
k--;
,则下述说明中正确的是().
A、循环体执行一次
B、死循环
C、循环体一次也不执行
D、循环体执行10次
答案:C
46.表示关系x>0且y<=10的C语言表达式为().
答案:C
9.以下选项中,与k=n++完全等价的表达式是().
A、n=n+1,k=n
B、k+=n+1
C、k=++n
D、k=n,n=n+1
答案:D
10.针对下列程序段回答问题().
for(t=1;t<=100;t++)
{
scanf("%d",&x);
if(x<0)continue;
printf("%3d",t);
答案:D
37.以下定义语句中错误的是().
A、int a[]={1,2};
B、int n=5,a[n];
C、char *a[3];
D、char s[10]="test";
答案:B
38.下列正确的标识符是().
A、%y
B、a+b
C、6a
D、_do
答案:D
39.C语言源程序的基本单位是().
A、子程序
B、过程
y+x=4.62,y-x=2.12
A、printf("y+x=%4.2f,y-x=%4.2f\n",y+x,y-x);
B、printf("y+x=%f,y-x=%f\n",y+x,y-x);
C、printf("y+x=%6f,y=%6f\n",y+x,y-x);
D、printf("y+x=%6.2f,y-x=%6.2f\n",y+x,y-x);
A、x=(x=1+2,x*2)
B、x=9-(--y)-(--y)
C、
D、x=y>2?6:5
答案:B
53.设x,y,z,t均为整型变量,则执行以下语句后,t的值为:()
x=y=z=1;
t=++x||++y&&++z;
A、1
B、不定值
C、2
D、0
答案:A
54.下列字符序列中不可用作C语言标识符的是().
33.以下正确的描述是().
A、在循环中,break语句不能独立出现
B、只能用continue语句来终止本次循环
C、goto语句只能用于退出多层循环
D、switch语句中,不能出现continue语句
答案:B
34.C语言中,运算对象必须是整型的运算符是().
A、〈=
B、%=
C、=
D、/
答案:B
35.下面不正确的字符串常量是().
B、d=9+e,e++,d+9
C、d=9+e
D、ቤተ መጻሕፍቲ ባይዱ=9+e++=d+7
答案:C
51.下面对函数的叙述,正确的是().
A、函数中无论是否有return语句,都能返回正确值
B、函数中没有return语句,说明不带回值
C、函数不能嵌套定义
D、函数的返回值是通过return语句获得的
答案:C
52.整型变量x=1,y=3,经下列计算后,x的值不等于6的是().
一、单项选择
1.算术运算符,赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为().
A、关系运算,赋值运算,算术运算
B、算术运算,关系运算,赋值运算
C、算术运算,赋值运算,关系运算
D、关系运算,算术运算,赋值运算
答案:B
2.下述正确的C语言常量是:().
A、E2
B、3e-3
C、1.5E2.5
D、5.0E
43.以下叙述中,不正确的是().
A、C程序中的#include和#define均不是C语句
B、在C程序中,赋值运算符的优先级最低
C、在C程序中,j++;是一条赋值语句
D、一个好的程序应该有详尽的注释
答案:B
44.下面叙述中错误的是().
A、若一个函数没有return语句,则什么值也不会返回
B、一般来说,函数的形参和实参的类型要一致
{int **k,*j,i=100;
j=&i,k=&j;
printf("%d\n",**k);
}
A、100
B、i的地址
C、j的地址
D、运行错误
答案:A
42.若定义:int a=511,*b=&a;,则printf("%d\n",*b);的输出结果为().A、a的地址
B、无确定值
C、511
D、512
答案:C
D、strcpy(a,"abc");
答案:A
7.fscanf函数的正确调用形式是().
A、fscanf(文件指针,格式字符串,输入表列);
B、fscanf(格式字符串,文件指针,输出表列);
C、fscanf(fp,格式字符串,输出表列);
D、fscanf(格式字符串,输出表列,fp);
答案:A
8.下列数组说明中正确的是().
答案:A
31.执行下面程序段后,ch的值是().
char ch='a';
ch=(ch>='A'&&ch<='Z')?(ch+32):ch;
A、A
B、z
C、Z
D、a
答案:D
32.在C语言的函数中,下列正确的说法是().
A、数组名不能作形参
B、可以有也可以没有形参
C、形参必须是变量名
D、必须有形参
答案:B
D、p=&(j+2);
答案:C
24.定义char s[10],*p=s;,则下面编译不能通过的语句是().
A、s=p+s;
B、s[2]=p[4];
C、p=s+5;
D、*p=s[0];
答案:A
25.以下函数调用语句中,实参的个数是().
exce((v1,v2),(v3,v4,v5),v6);
A、3
B、4
答案:B
48.C语言提供的合法的数据类型关键字是().
A、float
B、unsigned
C、char
D、int eger
答案:B
49.所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:().
A、6
B、7
C、8
D、2
答案:C
50.以下符合C语言语法的赋值表达式是().
A、d=9+e+f=d+9
A、"0"
B、""
C、"12'12"
D、'abc'
答案:D
36. fwrite函数的一般调用形式是().
A、fwrite(buffer,count,size,fp);
B、fwrite(fp,count,size,buffer);
C、fwrite(fp,size,count,buffer);
D、fwrite(buffer,size,count,fp);
D、C程序中,注释部分可以出现在程序中,任意合适的地方
答案:D
21.以下能对二维数组a进行正确初始化的语句是().
A、int a[][3]={{1,2,3},{4,5,6}};
B、int a[2][]={{1,0,1},{5,2,3}};
C、int a[2][4]={{1,2,3},{4,5},{6}};
C、标识符
D、函数
答案:D
40.若变量已正确定义,执行语句scanf("%d,%d,%d",&k1,&k2,&k3);时,()是正确的输入
A、20 30 40
B、2030,40
C、20,30,40
D、20,30 40
答案:C
41.设有如下程序,请选择正确答案().
#include<stdio.h>
main()
B、123 2e4.2.e5
C、-.18 123e4 0.0
D、160.0.12 e3
答案:B
29.以下函数调用语句中,实参的个数是().
fun c((e1,e2),(e3,e4,e5));
A、3
B、5
C、语法错误