C语言测试题.doc_第1页
C语言测试题.doc_第2页
C语言测试题.doc_第3页
C语言测试题.doc_第4页
C语言测试题.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单项选择以下程序的执行结果是_. main() int w = 1, x = 2, y = 3, z = 4; w =( w x ) ? x : w; w =( w y ) ? y : w; w =( w z ) ? z : w; printf( %d , w );A、2 B、4 C、3 D、1答案:B若有说明:int n=2,*p=&n,*q=p;,则以下非法的赋值语句是()。A、n=*q; B、p=q; C、p=n; D、*p=*q;答案:C题号:5820以下程序的输出结果是void prtv(int *x) printf(“%dn”, +*x); main() int a = 25; prtv(&a);A、24 B、26 C、23 D、25答案:B题号:6988以下程序的输出结果是main() int a = 2, b =5; printf(“a=%d,b=%dn”,a, b); A、a=%2,b=%5 B、a=%d,b=%d C、a=%d,b=%d D、a=2,b=5答案:C题号:6976语句printf(abrehiyboun);的输出结果是(说明:b是退格符)()。A、abrehiybou B、rehiyou C、abrehiybou D、abrehiybou答案:B题号:166以下关于运算符优先顺序的描述中正确的是()。A、关系运算符算术运算符赋值运算符逻辑运算符 B、赋值运算符逻辑运算符关系运算符算术运算符 C、算术运算符关系运算符赋值运算符逻辑运算符D、逻辑运算符关系运算符算术运算符赋值运算符答案:B题号:333下列语句的结果是()。main() int j; j=3;printf(%d,+j); printf(%d,j+);A、3,4 B、4,4 C、4,3 D、3,3答案:B题号:457设a和b均为double型变量,且a=5.5、b=2.5,则表达式(int)a+b/b的值是A、6.000000 B、5.500000 C、6 D、6.500000答案:A题号:523若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是()。A、3.500000 B、0.000000 C、2.750000 D、2.500000答案:D题号:855若有以下程序段:int a=3,b=4; a=ab;b=ba;a=ab;则执行以上语句后,a和b的值分别是()。A、a=4,b=4 B、a=3,b=3 C、a=3,b=4 D、a=4,b=3答案:D判断若有说明int c;则while(c=getchar();是正确的C语句。 答案:正确C语言中%运算符的运算对象必须是整型. 答案:正确c程序总是从程序的第一条语句开始执行. 答案:错误假设有int a10, *p;则p=&a0与p=a等价 答案:正确#define 和printf 都不是C语句。 答案:正确C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 答案:正确十进制数15的二进制数是1111. 答案:正确x*=y+8 等价于 x=x*(y+8)。 答案:正确若有 int i=10,j=2;则执行完i*=j+8;后的值为28。 答案:错误关系运算符= 与 = 的优先级相同。 答案:错误填空以下程序段的输出结果是_。int i = 0, sum = 1; do sum += i+; while( i 5); printf(“%dn”, sum);答案:空 1:11表达式3.5 + 1 / 2的计算结果是_。答案:空 1:3.5以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_、_、_。 int k; flaot a; double x; scanf(“%d%f%lf”, &k, &a, &x); printf(“k = %d, a = %f, x = %fn”, k, a, x);答案:空 1:100 25.81 1.8923空 2:100 25.81 1.8923 空 3:100 25.81 1.8923阅读下面程序,程序执行后的输出结果为_。#include stdio.hmain()char a,b;for(a=0,b=9;ab;a+,b-) printf(%c%c,a,b);printf(n);答案:空 1:0918273645以下程序的输出结果是_。unsigned fun6(unsigned num) unsigned k = 1;do k *= num % 10; num /= 10; while( num);return k; main() unsigned n = 26; printf(“%dn”, fun6(n);答案:空 1:12下列程序的功能是输入一个整数,判断其是否是素数,若为素数输出1,否则输出0.请填空。main() int i, x, y=1;scanf(%d, &x);for(i=2; ic*2b!=5|!(1/2)中,a、b、c的定义和赋值为Int a=3,b=4,c=2; 则表达式的值为_。答案:空 1:1单项选择能正确表示逻辑关系: a10或a0 的C语言表达式是A、a=0 | a=10 or a=10 & a=10 | a=0答案:D设有定义:int n=0,*p=&n,*q=&p,则下列选项中正确的赋值语句是A、*p=5; B、*q=2; C、p=1; D、q=p; 答案:A可在C程序中用作标识符的一组标识符是A、2c DO SiG B、void Define WORD C、as_b3 _123 If D、For -abc case答案:C以下运算符中,优先级最高的运算符是()。A、= B、| C、! D、%答案:C以下关于long、int和short类型数据占用内存大小的叙述中正确的是A、由C语言编译系统决定 B、均占4个字节 C、由用户自己定义 D、根据数据的大小来决定所占内存的字节数答案:A以下程序段给数组所有元素输入数据,应在下划线处填入的是main() int a10, i = 0; while(i =y&ch2)/(b1)的值是()。A、8 B、2 C、0 D、4答案:CC语言中不可以嵌套的是()。A、选择语句 B、循环语句 C、函数调用 D、函数定义答案:D判断若i =3,则printf(%d,-i+);输出的值为 -4。答案:错误7&3+12的值是15。 答案:错误语句 printf(%f%,1.0/3);输出为 0.333333。 答案:错误a=(b=4)+(c=6) 是一个合法的赋值表达式。 答案:正确如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。 答案:错误若有int =10, j=0;则执行完语句 if (j=0)+ +; else - -; 的值为11。 答案:错误参加位运算的数据可以是任何类型的数据。 答案:错误题号:6167表达式 (j=3, j+) 的值是4. 答案:错误函数strlen(ASDFGn)的值是7。 答案:错误#define 和printf 都不是C语句。 答案:正确填空当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_、最小十进制整数是_,它们的二进制形式是_。答案:空 1:65535空 2:-32768空 3:1111 1111 1111 1111,1000 0000 0000 0000表达式(int)(double)(5/2)+2.5)的值是_.答案:空 1:4若有以下定义:char a=”ABCD”, b=”abcd”;if(strcmp(a,b)=0) printf(“YESn”);else printf(“NOn”);执行结果是 _。答案:空 1:无结果 【或】 语法错误 【或】 语法错误(strcmp(a,b)=0)以下程序的执行结果是_。main() int a, b, *p = &a, *q = &b; a = 10; b = 20; *p = b; *q = a; printf(“a = %d, b = %dn”, a, b); 答案:空 1: a = 20, b = 20 若有以下定义:double w10;则w数组元素下标的上限是_, 下限是_。答案:空 1:9空 2:0C语言中用_表示逻辑真,用_表示逻辑假。答案:空 1:非0空 2:0以下程序段的输出结果是_。 int *var, ab; ab = 100; var = &ab; ab = *var + 10; printf(“%dn”, *var);答案:空 1:110以下程序段的输出结果是_、_、_、_ double a = 513.789215; printf(“a = %8.6f, a = %8.2f, a = %14.8f, a = %14.8lfn”, a, a, a, a);答案:空 1:a = 513.789215空 2:a = 513.79空 3:a = 513.78921500空 4:a = 513.78921500若有定义:int a=8,b=5,c 执行语句c=a/b+0.4后,c的值为_答案:空 1:1表达式3.5 + 1 / 2的计算结果是_。答案:空 1:3.5单项选择以下程序段的输出结果为()。 for(i=4;i1;i-) for(j=1;ji;j+) putchar(#);A、# B、无 C、# D、#答案:A以下能正确进行字符串赋值的语句是A、char s5 = “good!”; B、char s5 = a, e, i, o, u;C、char s5; s = “good!”;D、char *s; s = “good!”;答案:D以下程序段的输出结果为()。 char c=abc; int i=0; do ;while(ci+!=0);printf(%d,i-1);A、abc B、3 C、ab D、2答案:B以下选项中合法的用户标识符是_。A、_2Test B、long C、A.dat D、3Dmax答案:A设有定义:int n=0,*p=&n,*q=&p;则以下选项中,正确的赋值语句是()。A、p=1; B、*p=5; C、*q=2; D、q=p;答案:B若已定义x为int类型变量,下列语句中说明指针变量p的正确语句是()。A、int *p=&x; B、int p=&x; C、*p=*x; D、int *p=x;答案:A题号:5227以下程序的输出结果是void sub(int x, int y, int *z) *z = y - x; main() int a, b, c; sub(10, 5, &a); sub(7, a, &b); sub(a, b, &c); printf(“%d, %d, %dn”, a, b, c);A、-5, -12, -7 B、-5, -12, -17 C、5, -2, -7 D、5, 2, 3 答案:A以下选项中正确的实型常量是A、0.03x102 B、32 C、3.1415 D、0答案:Bint a10; 给数组a的所有元素分别赋值为1、2、3、的语句是()。A、for(i=1;i11;i+)ai+1=i; B、for(i=1;i11;i+)ai-1=i;C、for(i=1;i11;i+)ai=i; D、for(i=1;i11;i+)a0=1;答案:B以下对整型数组a的正确说明是:A、int n = 10, an;B、C、D、int a(10);答案:C判断若有 int i=10,j=2;则执行完i*=j+8;后的值为28。 答案:错误一个include 命令可以指定多个被包含的文件。 答案:错误进行宏定义时,宏名必须使用大写字母表示。 答案:错误逻辑表达式-5&!8的值为1. 答案:错误若有宏定义:#define S(a,b) t=a;a=b;b=t由于变量t没定义,所以此宏定义是错误的。 答案:错误关系运算符= 与 = 的优先级相同。 答案:错误若有定义和语句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f); 若通过键盘输入:10,A,12.5,则a=10,c=A,f=12.5. 答案:正确如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。 答案:错误在Turbo C中,整型数据在内存中占2个字节。 答案:错误C语言中%运算符的运算对象必须是整型. 答案:正确填空以下程序的输出结果是_。main() int x = 2;while ( x- );printf(“%dn”, x); 答案:空 1:-1以下程序的执行结果是_。main() int k=8; switch(k) case 9: k+=1;case 10: k+=1;case 11: k+=1; break;default: k+=1;printf(%dn,k);答案:空 1:9若要通过以下语句给a、b、c、d分别输入字符A、B、C、D,给w、x、y、z分别输入10、20、30、40,正确的输入形式是_。请用代表Enter键。scanf(“%d%c%d%c%d%c%d%c”, &w, &a, &x,&b, &y, &c, &z, &d);答案:空 1:10A20B30C40D以下程序的输出结果是_。#define PR(ar) printf(“ar = %d “, ar)main() int j, a = 1, 3, 5, 7, 9, 11, 13, 15, *p = a + 5; for(j = 3; j ; j-) switch( j ) case 1: case 2: PR(*p+); break; case 3: PR(*(-p) ); 答案:空 1:ar=9 ar=9 ar=11以下程序的输出结果是_。main() int x=100, a=10, b=20, ok1=5, ok2=0;if(ab)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(%dn, x);答案:空 1:-1以下程序的输出结果是_ 。#define PR(ar) printf(“ar = %d “, ar)main() int j, a = 1, 3, 5, 7, 9, 11, 13, 15, *p = a + 5; for(j = 3; j ; j-) switch( j ) case 1: case 2: PR(*p+); break; case 3: PR(*(-p) ); 答案:空 1:ar = 9 ar = 9 ar = 11阅读下面程序,则执行后程序的结果为_。#include stdio.hmain()int a=0,b=0;while(a15)a+;while(b+15);printf(%d,%dn,a,b);答案:空 1:15, 16在C语言程序中,用关键字_定义基本整型变量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。答案:空 1:int空 2:float空 3:double题号:2758若x为double型变量,请写出运算x = 3.2, +x后表达式的值_和变量的值_。答案:空 1:4.2空 2:4.2题号:5076以下程序的输出结果是_。main() int a=0;a+=(a=8);printf(%dn,a); 答案:空 1:16单项选择以下选项中不合法的用户标识符是A、file B、wb-1 C、PRINTF D、Main答案:B题号:978若变量已正确定义,执行语句scanf(%d,%d,%d ,&k1,&k2,&k3);时,_是正确的输入A、20 30 40 B、2030,40 C、20, 30 40 D、20,30,40答案:D题号:1957C语言中,逻辑真等价于A、非零的整数 B、大于零的整数 C、非零的数 D、大于零的数答案:C题号:3823若有int i=3,*p;p=&i;下列语句中输出结果为3的是()。A、printf(%d,p); B、printf(%d,&p); C、printf(%d,*i); D、printf(%d,*p);答案:D题号:6941在C语言中,要求运算数必须是整型或字符型的运算符是()。A、| B、& C、& D、!答案:B题号:3801以下程序的输出结果是 main() int x, i; for(i = 1; i = 100; i+) x = i;if( +x % 2 = 0) if( +x % 3 = 0 ) if( +x % 7 = 0) printf(“%d “, x); printf(“n”);A、28 70 B、39 81 C、42 84 D、26 68 答案:A题号:2330宏定义#define PI 3.14中的宏名PI代替A、不确定类型的数 B、一个单精度实数 C、一个字符串 D、一个双精度实数答案:C题号:345下列程序的输出结果是()。main()int a=7,b=5; printf(%dn,b=b/a);A、不确定值 B、1 C、5 D、0答案:D题号:1803有以下程序main() int i = 10, j = 1; printf(%d,%dn,i-, +j); 执行后输出结果是A、10,1 B、9,2 C、9,1 D、10,2答案:D题号:3217int a10;合法的数组元素的最小下标值为()。A、1 B、0 C、10 D、9答案:B判断两个字符串中的字符个数相同时才能进行字符串大小的比较。 答案:错误若有定义和语句:int a;char c;float f;scanf(%d,%c,%f,&a,&c,&f); 若通过键盘输入:10,A,12.5,则a=10,c=A,f=12.5. 答案:正确在Turbo C中,整型数据在内存中占2个字节。 答案:错误C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。 答案:正确如果有一个字符串,其中第十个字符为n,则此字符串的有效字符为9个。 答案:错误参加位运算的数据可以是任何类型的数据。 答案:错误一个include 命令可以指定多个被包含的文件。 答案:错误十进制数15的二进制数是1111. 答案:正确字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面. 答案:错误x*=y+8 等价于 x=x*(y+8)。 答案:正确填空以下程序段的输出结果是_。printf(“%dn”, strlen(“sn0160end”);答案:空 1:3以下程序的输出结果是_。main() int x=100, a=10, b=20, ok1=5, ok2=0;if(ab)if(b!=15)if(!ok1)x=1;else if(ok2)x=10;else x=-1;printf(%dn, x);答案:空 1:-1以下程序的输出结果是_。fun( int x , int *s) int f1, f2; if( n = 1 | n = 2) *s = 1; else fun( n - 1, &f1) ; fun(n - 2, &f2); *s = f1 + f2; main() int x; fun(6, &x);printf(“%dn”, x );答案:空 1:8 (用跟踪程序运行的方法观察递归的过程) 【或】 8若变量已正确定义,以下语句段的输出结果是_。 x = 0; y = 2; z = 3;switch(x) case 0: switch( y = 2) case 1: printf(“*”); break; case 2: printf(“%”); break; case 1: switch( z ) case 1: printf(“$”); case 2: printf(“*”); break; default : printf(“#”); 答案:空 1:*#以下程序段的输出结果是_。int i = 0, sum = 1; do sum += i+; while( i 5); printf(“%dn”, sum);答案:空 1:11若x为double型变量,请写出运算x = 3.2, +x后表达式的值_和变量的值_。答案:空 1:4.2空 2:4.2组成C程序的基本单位是 _,其组成部分包括_和_。答案:空 1:函数空 2:函数首部空 3:函数体以下程序的执行结果是_。 #define DOUBLE(r) r*r main() int y1 = 1, y2 = 1, t; t = DOUBLE(y1 + y2); printf(“%dn”, t); 答案:空 1:3若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf(_ ,x/y);补充完整,使其输出的计算结果形式为:x/y=11答案:空 1:x/y=%d通常一个字节包含_个二进制位。在一个字节中能存放的最大十进制整数是_,它的二进制数的形式是_;最小十进制整数是_,它的二进制形式是_。答案:空 1:8空 2:255空 3:1111 1111空 4:-128空 5:1000 0000单项选择有定义:char*p1,*p2;则下列表达式中正确合理的是A、p1/=5 B、p1+=5 C、p1=&p2 D、p1*=p2答案:C若有定义:int *p3;,则以下叙述中正确的是()。A、定义了一个名为*p的整型数组,该数组含有三个int类型元素B、定义了一个可指向一维数组的指针变量p,所指一维数组应具有三个int类型元素C、定义了一个指针数组p,该数组含有三个元素,每个元素都是基类型为int的指针D、定义了一个基类型为int的指针变量p,该变量具有三个指针答案:CC语言中,定义结构体的保留字是()。A、struct B、union C、enum D、typedef答案:A设 char *s=ta017bc;则指针变量s指向的字符串所占的字节数是()。A、7 B、6 C、9 D、5答案:B以下程序的输出结果是main() int a = 1, 2, 3, 4, i, x = 0;for(i = 0; i 4; i+) sub(a, &x); printf(“%d ”, x); pritnf(“n”); sub(int *s, int *y) static int t = 3;*y = st; t-; A、4 4 4 4 B、0 0 0 0 C、1 2 3 4 D、4 3 2 1答案:D以下叙述正确的是:A、用do-while构成循环时,只有在while后的表达式为非零时结束循环B、do-while语句构成的循环不能用其它语句构成的循环来代替。C、用do-while构成循环时,只有在while后的表达式为零时结束循环D、do-while语句构成的循环只能用break语句退出。答案:C对两个数组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完全相同答案:B以下数值中,不正确的八进制数或十六进制数是()。A、-16 B、0x16 C、16 D、0xaaaa答案:A对于基本类型相同的两个指针变量之间,不能进行的运算是()。A、+ B、 c) b = a; a = c; c = b;答案:空 1:3空 2:2空 3:2下列程序的执行结果是_。int d = 1; fun(int p) int d = 5; d += p+; pritnf(“%d “, d); main() int a = 3; fun(a); d += a+; printf(“%dn”, d); 答案:空 1:8 4以下程序的输出结果是_。double sub(double x, double y, double z) y -= 1.0;z = z + x;return z; main() double a = 2.5, b = 9.0;printf(“%fn”, sub(b - a, a, b); 答案:空 1:15.500000以下程序段的输出结果是_。 int k, n, m; n = 10; m = 1; k = 1; while( k y)if(xz)printf(%d,x);else printf(%d,y);printf(%dn,z);答案:空 1:3函数体由符号_开始,用符号_结束。答案:空 1:空 2:若k为int型变量且赋值11,请写出运算k+后表达式的值_和变量的值_。答案:空 1:11空 2:12将下列数学式改写成C语言的关系表达式或逻辑表达式是 A)_B)_。A)a=b或a4答案:空 1:a=b | a4 【或】 x4对以下数学式,写出三个等价的C语言表达式是_、_、_ 答案:空 1:a/c/b 【或】 a/(b*c) 【或】 a/b/c空 2:a/c/b 【或】 a/b/c 【或】 a/(b*c)空 3:a/b/c 【或】 a/c/b 【或】 a/(b*c)单项选择变量p为指针变量,若p=&a,下列说法不正确的是()。A、*(p+)=a+ B、&*p=&a C、(*p)+=a+ D、*&a=a答案:A题号:6651C语言允许函数类型缺省定义,此时函数值隐含的类型是()。A、long B、float C、int D、double答案:C题号:6993若已定义x和y为double类型,则表达式x=1,y=x+3/2 的值是()。A、1 B、2.0 C、2.5 D、2答案:B题号:6988以下程序的输出结果是main() int a = 2, b =5; printf(“a=%d,b=%dn”,a, b); A、a=%2,b=%5 B、a=%d,b=%d C、a=%d,b=%d D、a=2,b=5答案:C题号:5659若有定义int a10,*p=a;,则p+5表示A、元素a5的地址 B、元素a6的地址 C、元素a6的值 D、元素a5的值答案:A题号:6490若有说明:int *p,m=5,n;以下正确的程序段是()。A、scanf(%d,&n);*p=n; B、p=&n;*p=m; C、p=&n;scanf(%d,*p) D、p=&n;scanf(%d,&p);答案:B题号:6073下列程序的输出结果为()。main()int m=7,n=4;float a=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf(%fn,x);A、28.000000 B、27.500000 C、28.500000 D、27.000000答案:D题号:401以下所列的C语言常量中,错误的是()。A、72 B、0xFF C、2L D、1.2e0.5答案:D题号:1684int a=1,b=2,c=3; if(ac)b=a;a=c;c=b;则c的值为()。A、3 B、2 C、不一定 D、1答案:B题号:961C语言中 while 和 do-while 循环的主要区别是()。A、while的循环控制条件比 do-while的循环控制条件更严格 B、do-while 的循环体至少无条件执行一次C、do-while 的循环体不能是复合语句 D、do-while 允许从外部转到循环体内答案:B判断=题号:3927两个字符串中的字符个数相同时才能进行字符串大小的比较。答案:错误题号:51247&3+12的值是15。答案:错误题号:3721语句 printf(%f%,1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论