C语言试题1
- 格式:doc
- 大小:70.00 KB
- 文档页数:11
练习1一、选择题1、一个C程序是由(B)。
A.一个主程序和若干子程序组成B.一个或多个函数组成C.若干过程组成D.若干子程序组成2、一个C程序的执行是从( A )。
A.main函数开始,直到main函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main函数开始,直到最后一个函数结束3、C语言语句的结束符是(B)。
A.回车符B.分号C.句号D.逗号4、下面标识符中( D )不是C语言的关键字。
A.char B.goto C.case D.include5、以下说法正确的是(A)A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
B.C程序的注释只能是一行。
C.C程序的注释不能是中文文字信息。
D.C程序的注释中存在的错误会被编译器检查出来。
6、以下说法正确的是(D)A.C程序中的所有标识符都必须小写B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写D.C程序中关键字必须小写,其他标识符区分大小写。
7、设x、y均为float型变量,则以下不合法的赋值语句是(B)A.++x ; B.y=(x%2)/10 ; C.x*=y+8; D.x=y=0 ;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。
8、下列不正确的转义字符是(C)A.' \\ ' B.' \' ' C.' \19 ' D.' \0 '解析:转义字符是由单引号括起来的带反斜线的字符,这些字符具有特殊的含义,反斜线后可以是数字来代表某个字符,而这些数字只包括两种:八进制(1-3位)和十六进制(1-2位)。
十六进制前面要加x(或X),这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。
一. 选择题 (单项)1. C 语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符——。
A必须为字母B必须为下划线C必须为字母或下划线 D 可以是字母、数字和下划线中的任一种字符2.下面 4个选项中,均是 C 语言关键字的选项是——。
Aauto enum includeBswitch typedef continueC signed union scanfD if struct type3.下面 4个选项中,均是不合法的用户标识符的选项是——。
A A P_0 doBfloat la0_AC b- a goto int D_123 temp INT4.在 C 语言中,int 、char 和 short 三种类型的数据在内存中所占用的字节数——。
A由用户自己定义B均为 2 个字节C是任意的D由所用机器的机器字长决定5.下面 4 个选项中,均是合法浮点数的选项是——。
A+1e+15e-9.403e2B- .60 12e-4-8e5C123e 1.2e-.4 +2e - 1D-e3 .8e-4 5.e -06.下面不正确的字符串常量是——。
AˊabcˊB〞 12ˊ12〞C〞0 〞D〞〞7.假设所有的变量均为整型,则表达式(a=2,b=5,b++, a+b)的值是——。
A7B8C6D28.以下正确的叙述是——。
A在 C 语言中,每行只能写一条语句B若 a 是实型变量, C 程序中允许赋值a=10,因此实型变量中允许存放整型数C在 C 程序中,无论整数还是实数,都能被准确无误的表示D在 C 程序中, % 是只能用于整数运算的运算符9.以下表达式值为 3 的是——。
A 16-13%10B2+3/2C 14/3-2D(2+6)/(12- 9)10.设变量 a 是整型, f 是实型, i 是双精度型,则表达式 10+ˊ aˊ +i*f 值的数据类型为——。
A intB floatC doubleD 不确定11.在 C 语言中, char 型数据在内存中的存储形式是——。
C语言概述、数据类型运算符表达式、顺序结构一、选择题1.下列叙述中,正确的是。
A.C程序中的注释只能出现在程序的开始位置和语句的后面B. C程序书写格式严谨,要求一行内只能写一个语句C. C程序的书写格式自由,一个语句可以写在多行上D. 用C语言编写的程序只能放在一个程序文件中2.下列选项中,可作为合法标识符的是。
A.1mB. DataC. str+1D. i-1 3.设变量已正确定义并赋值,以下合法的C语言赋值语句是。
A.x=y==5B. x=n%2.5C. x+n=iD. x=5=4+1 4.设有定义:int k=0;以下选项的4个表达式中与其他3个表达式的值不相同的是。
A.k++B. k+=1C. ++kD. k+1 5.若有定义:int a,b;则用语句scanf(“%d%d”,&a,&b);输入a,b的值时,不能作为输入数据分隔符的是。
A.,B. 空格C. 回车D. Tab键6.C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的是。
A.任何不同数据类型都不可以通用B. 有些不同类型的变量可以在同一个表达式中运算C. 在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D. 同一个运算符号在不同的场合可以有不同的含义7.下列常数中不能作为C语言的常量的是。
A.0Xa6B. 3.4e-3C. 3e5D. 0683 8.下面不是C语句的是。
A.int;B. ;C. a=1,b=5D. {;} 9.设x、y、z为整型变量,若从键盘给x、y、z输入数据,则正确的输入语句是。
A.scanf(“%d%d%d”,&a,&b,&c);B. scanf(“%d%d%d”,a,b,c);C.scanf(“%D%D%D”,&a,&b,&c);D. scanf(“%d%d%d”,&a;&b;&c); 10.若变量已正确定义,现要将a和b中的数据进行交换,下面不正确的是。
c语言程序设计第一章试题及答案一、选择题(每题2分,共10分)1. C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中合法的变量名?A. _123abcB. intC. forD. myVar答案:C3. 在C语言中,用于声明一个整型变量的关键字是:A. intB. floatC. charD. double答案:A4. 下列哪个选项是C语言中的控制语句?A. printfB. scanfC. ifD. return答案:C5. C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题2分,共10分)1. C语言中,用于输入一个整数的函数是________。
答案:scanf2. 在C语言中,定义一个数组时,数组的下标从________开始。
答案:03. C语言中,用于输出一个浮点数的函数是________。
答案:printf4. C语言中,用于定义一个字符型变量的关键字是________。
答案:char5. C语言中,用于定义一个布尔型变量的关键字是________。
答案:_Bool 或 bool(根据标准不同)三、简答题(每题5分,共20分)1. 请简述C语言中变量的作用域有哪些?答案:变量的作用域主要有局部作用域和全局作用域。
局部作用域通常用于函数内部,变量只在该函数中有效;全局作用域用于函数外部,变量在整个程序中都有效。
2. 解释C语言中的指针是什么?答案:指针是一种特殊的变量,它存储了另一个变量的内存地址。
通过指针,程序可以间接访问和操作内存中的数据。
3. 什么是C语言中的函数原型?答案:函数原型是指函数的声明,它提供了函数的返回类型、函数名、参数类型和数量等信息,但不包含函数的具体实现。
4. 在C语言中,如何定义一个结构体?答案:定义一个结构体需要使用关键字`struct`,后跟结构体的名称,然后是一对花括号,其中包含了结构体成员的声明。
c语言考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. C语言中,用于定义一个整型变量的关键字是:A. intB. floatC. doubleD. char答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于数组的描述中,正确的是:A. 数组必须在程序开始时初始化B. 数组的元素可以是不同的数据类型C. 数组的索引从1开始D. 数组的声明必须指定数组的大小答案:D5. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. define答案:B6. C语言中,用于表示逻辑“与”操作的运算符是:A. &&B. ||C. !D. &答案:A7. 下列哪个选项是C语言中合法的注释?A. // 这是一个注释B. /* 这是一个注释 */C. // 这是一个注释/* 这是一个注释 */D. /* 这是一个注释 */答案:A8. C语言中,用于定义一个空指针的值是:A. NULLB. 0C. falseD. none答案:A9. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以存储函数的地址C. 指针可以存储数组的索引D. 指针可以存储指针的地址答案:C10. 在C语言中,用于定义一个字符型指针的声明是:A. char *ptr;B. int *ptr;C. float *ptr;D. double *ptr;答案:A二、填空题(每题2分,共20分)1. 在C语言中,定义一个整型数组的语法是:______ int array[10];。
答案:int2. 如果一个变量的值是10,那么表达式sizeof(&var)的结果是:______。
c语言编程题考试题库及答案一、单项选择题1. 在C语言中,以下哪个选项是正确的整型常量?A. 0x12LB. 0x12.5C. 0x12.0D. 0x12F答案:A2. C语言中,以下哪个选项是正确的字符串字面量?A. "Hello, World"B. 'Hello, World'C. "Hello, World\n"D. "Hello, World\"答案:C3. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(a, b);答案:A4. C语言中,以下哪个选项是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[] = {1, 2, 3, 4, 5};C. int a[5] = {1, 2, 3};D. int a = {1, 2, 3, 4, 5};答案:B5. 在C语言中,以下哪个选项是正确的指针声明?A. int *p = 0;B. int *p = "Hello";C. int *p = 5;D. int p = 0;答案:A二、填空题1. 在C语言中,表示逻辑“与”操作的运算符是 ________ 。
答案:&&2. C语言中,表示逻辑“或”操作的运算符是 ________ 。
答案:||3. 在C语言中,表示逻辑“非”操作的运算符是 ________ 。
答案:!4. C语言中,表示赋值操作的运算符是 ________ 。
答案:=5. 在C语言中,表示取地址操作的运算符是 ________ 。
答案:&三、程序阅读题阅读以下C语言程序段,并回答问题。
```c#include <stdio.h>int main() {int a = 10, b = 20, c;c = a + b;printf("%d", c);return 0;}```1. 程序的输出结果是什么?答案:302. 如果将`c = a + b;`改为`c = a * b;`,程序的输出结果是什么?答案:200四、编程题1. 编写一个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。
一、单项选择题(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语言)》考试题一一、选择题(共20题,每题2分)1.当a=1,b=3,c=5,d=4时,执行完下面一段程序后x的值是()。
if (a<b)if(c<d) x=1;elseif (a<c)if (b<d) x=2;else x=3;else x=6;else x=7;A) 1 B) 2 C) 3 D) 62.以下程序的输出结果是()。
main(){ int x=2, y=-1, z=2;if (x<y)if (y<0) z=0;else z=z+1;printf(“%d\n”, z);}A) 3 B) 2 C) 1 D) 03.若运行时给变量x输入12,则以下程序的运行结果是()。
main(){ int x, y;scanf(“%d”, &x);y=x>12?x+10:x-12;printf(“%d\n”, y);}A) 0 B) 22 C) 12 D) 104.设有程序段int k=10;while (k=0) k= k—1;则下面描述中正确的是()A) while循环执行10次B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次5.下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
#include <stdio.h>main(){int i,sum= 0;for(i=1;i<=50;i++)if( ()) sum+=i;printf("%d",sum);}A) (int)(i/7)==i/7 B) (int)i/7==i/7C) i%7= 0 D) i%7==06.下面程序段的运行结果是a=1;b= 2;c=2;while(a<b<c){t= a;a= b;b=t;c- -;}printf("%d,%d,%d",a,6,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,17.下面程序的功能是计算1至10之间的奇数之和及偶数之和。
请选择填空#include <stdio.h>main(){int a,b,c,i;a=c=0;for(i=0;i<=10;i+=2){ a+=i;();c+=b;}printf("偶数之和=%d\n",a);printf("奇数之和=%d\n",c-11),}A)b=i-- B) b=i+1 C)b=i++ D)b=i-1 7.下面程序段:for (t=1; t<=100;t++){scanf("%d",&x);if(x<0) continue;printf("%3d",t);}A) 当x<0时整个循环结束B) x>=0时什么也不输出C) printf函数永远也不执行D)最多允许输出100个非负整数8.下面程序的运行结果是:#include "stdio.h"main(){int i;for(i=1;i<=5;i++){if (i%2) printf("*");else continue;printf("#");}printf("#");}A) *#*#$ B) #*#*#*$ C) *#*#$ D)#*#*$ 9.设有程序段int k=10;while(k=5) k=k-1;则下面描述正确的是A)while循环执行10次B)是死循环C)循环语句一次也不执行D)循环体语句执行一次10.当已存在一个abc.txt文件时,执行函数fopen(“abc.txt”, “r+”)的功能是( )。
A.打开abc.txt文件,清除原有内容B.打开abc.txt文件,只能写入新的内容C.打开abc.txt文件,只能读取原有内容D.打开abc.txt文件,可以读取和写入新的内容11.fopen()函数的mode取值”r”和”w”时,它们之间的差别是( )。
A.”r”可向文件写入,”w”不可向文件写入B.”r”不可向文件写入,”w”可向文件写入C.”r”不可由文件读出,”w”可由文件读出D.文件不存在时,”r”建立新文件,”w”出错12.以下对一维数组a的正确说明是()(A)int a(10);(B)int n=10,a[n];(C)int n; scanf(“%d”,&n);int a[n];(D)#define SIZE 10int a[SIZE];13.对以下说明语句的正确理解是()int a[10]={6,7,8,9,10};(A)将5个初值依次赋给a[1]至a[5](B)将5个初值依次赋给a[0]至a[4](C)将5个初值依次赋给a[6]至a[10](D)因为数组长度与初值的个数不相同,所以此语句不正确14.下面程序的运行结果是()char c[5]={…a‟,‟b‟,‟\0‟,‟c‟,‟\0‟};printf(“%s”,c);(A)ab (B)abc (C)abc+乱码(D)ab\0c\015.对两个数组a和b进行如下初始化char a[]=”ABCDEF”;char b[]={…A‟,‟B‟,‟C‟,‟D‟,‟E‟,‟F‟};则以下叙述正确的是()(A)a与b数组完全相同(B)a与b长度相同(C)a和b中都存放字符串(D)a数组比b数组的长度长16.下面是对s的初始化,其中不正确的是()(A)char s[5]={“abc”};(B)char s[5]={…a‟,‟b‟,‟c‟};(C)char s[5]=””;(D)char s[5]=”abcdef”;17.以下程序运行的结果是( )char s[6];s=”abcd”;printf(“%s\n”,s);(A)”abcd”(B)abcd (C)abcd+乱码(D)编译出错18.若有说明语句char u[]=”Microsoft”,则数组的大小是( )(A)100 (B)80 (C)10 (D)919.以下不正确的定义语句是( )(A)double y[5]={2.0,4.0,6.0,8.0,10.0};(B)int y[5]={0,1,3,5,7,9};(C)char c[]={…1‟,‟2‟,‟7‟,‟4‟,‟5‟};(D)char c[]={“abcdf”};20.当执行下面的程序时,如果输入ABC,则输出结果是( )A) ABC6789 B) ABC67 C) 12345ABC6 D) ABC456789#include "stdio.h"#include "string.h"main(){ char ss[10]="1,2,3,4,5";gets(ss); strcat(ss, "6789"); printf("%s\n",ss);}二、分析程序题(共10题,每题3分)1、以下程序的输出结果是()main(){int x=10,y=10;printf("%d %d\n",x--,--y);}2、以下程序的输出结果是()main(){ int a=32, b=66;printf("%c\n", a+b);}3、若运行时输入:16<回车>,则以下程序的运行结果是()。
#include <stdio.h>main(){int age;printf(“Input your age : “);scanf(“%d”, &age);if (age>=18)printf(“your $4.5yuan/hour”);elseprintf(“Your $3.0yuan/hour”);}4、以下程序的执行结果是__________。
typedef struct{int y[4];char z[8];} MYTYPE;main(){MYTYPE a = { {2,3,5,6},"Tom"};puts(a.z);}5、有如下结构体类型说明:struct test {char a[20] ;double b;struct test *next ;} ;如果head ,p,q都是该类型的指针变量且三者按head-p-q的顺序构成了一个链表,现在要求我们仅用两条条语句从该链表中删除p并释放p所占的空间,那么这两条语句正确的形式是________________。
6、以下程序的输出结果是( )。
#include <stdio.h>func(int a){int b;for(b=0; b<a; b++)printf("*");}main(){int a = 2;func(a);}7、下面程序的运行结果是( ) #include<stdio.h>main(){ int n;for(n=0;n<4;n++){ printf("%d%d%d%d",n,n,n,n); }}8、下面程序的运行结果是( ) #include<stdio.h>main(){ int n=1,i=1;while(i<6){ n=n*i;i=i+2;}printf("n=%d",n);}9、下面程序的运行结果是( ) #include<stdio.h>main(){ int i;for(i=4;i<=8;i++){ switch(i/j){ case 0:case 1:printf("*");break;case 2:printf("#");}}}10、下面程序的运行结果是( )#include<stdio.h>main(){ int a[8]={1,3,5,7,9,11,13,15},i,j,k;for(i=0,j=7;i<j;i++,j--){ k=a[i];a[i]=a[j];a[j]=k;}k=a[2]+a[3];printf("%d",k);}三、编写程序题(共3题,每题10分)1、编程对从键盘输入的任意两整数x和y进行求x3+y2 - 3x/y的值2、编写一个程序,要求程序的功能是:从键盘输入20个整数,存入一个数组中,然后输出该数组中的最小值。
其中确定最小值的下标的操作在detect()函数中实现。
请编写函数detect()的代码,并在主函数中调用它,以正确完成本题要求的功能。