C语言练习题3

合集下载

C语言程序设计习题集3

C语言程序设计习题集3
if(substr [【8】k+1]==’\0’)
{ num++ ; break ; }
return (num);
}
4下面函数的功能就是用递归法将一个整数存放到一个字符数组中,存放时按逆序存放,如483存放成“384”,请填空使程序完整。
void convert(char *a, int n)
{ int i;
A*pxBaCpxD&a
9若指针px为空指针,则_B__。。
A px指向不定B px的值为零C px的目标为零D px的地址为零
10对下语句int *px[10];,下面正确的说法就是_B__。
A px就是一个指针,指向一个数组,数组的元素就是整数型。
B px就是一个数组,其数组的每一个元素就是指向整数的指针。
A语句有错误B z值为68 Cz值为60 D z值为180
4以下程序运行后的输出结果就是_A__。
#define F(X,Y)(X)*(Y)
main()
{int a=3,b=4;
printf("%d\n",F(a++,b++));
}
A 12B15C16D 20
5以下程序运行后的输出结果就是_C__。
{int a[5]={2,4,6,8,10}, *p;
p=a; p++;
printf("%d", *p);
}
4以下程序的输出结果就是__55__。
#defineM5
#defineNM+M
main()
{int k;
k=N*N*5; printf("%d\n",k);

c语言习题

c语言习题

C语言阶段测试三一、单项选择题1、有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}int (*ptr)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是( A )。

A)*((*ptr+1)[2])B)*(*(p+5))C)(*ptr+1)+2 D)*(*(a+1)+2)2、# include <stdio.h> Dvoid main ( ){ int a[3][3]={1,2,3,4,5,6,7,8,9};int s=0,i;for (i=0;i<3;i++)s+=(*(a+i))[i];printf("%d",s);}A)9 B)12 C)14 D)153、设有说明语句:char a= '\123abc';则变量a ( A )A) 包含7个字符 B) 包含6个字符C) 包含5个字符D) 包含4个字符4、有以下程序段int k=0while(k=1)k++;while 循环执行的次数是( C )A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次5、下面四个选项中,均是合法转义字符的选项是_C___。

a. '\''b. '\'c. '\018'd. '\\0''\\' '\017' '\f' '101'\n' '\"' 'xab' 'xlf'6、下面四个选项中,均是不正确的八进制数或十六进制数的选项是____。

a. 016b. oabcc. 010d. 0a120x8f 017 -0x11 7ff018 0x8 0x16 -1237、设int x;则执行printf(″%x\n″,~x^x);的结果是( )A.0B.1C.ffD.ffff8、设int a=9,b=20;则printf(″%d,%d\n″,a--,--b);的输出结果是( A )A.9,19B.9,20C.10,19D.10,209、对于while语句,错误的说法是(B )A.用条件控制循环体的执行次数B.循环体至少要执行一次C.循环体有可能一次也不执行D.循环体中可以包含若干条语句10、执行下列语句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 )A.6,7,7B.6,7,8C.8,7,6D.8,7,811、设static char x[ ]=″12345″,y[ ]={′1′,′2′,′3′,′4′,′5′,′\0′};那么( A )A.x数组的长度等于y数组的长度B.x数组的长度大于y数组的长度C.x数组的长度少于y数组的长度D.x数组与y数组的存储区域相同12、设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]);的输出结果是( C )A.147B.159C.357D.36913、设int b[ ]={1,2,3,4},y,*p=b;则执行语句y=*p++;之后,变量y的值为( A )A.1B.2C.3D.414、假设int型变量占两个字节的存储单元,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数为____D__。

C语言程序设计-第3章 练习题

C语言程序设计-第3章  练习题

一、单项选择题题目1若x的值为15,则执行“if(x>10) x++; else x--;”语句后,x的值为()。

a. 14b. 15c. 10d. 16题目2若x的值为-10,则执行“if(!x) x++; else x--;”语句后,x的值为()。

a. -9b. -11c. -10d. 0题目3若x的值为10,则执行“switch(x%3){case0: x++; case 1:x++; case 2: x++;}”语句后,x的值为()。

a. 13b. 12c. 11d. 10题目4若x的值为10,则执行“switc h(x%3){case0: x++; break; case 1:x++; default: x++;}”语句后,x的值为()。

a. 9b. 10c. 11d. 12题目5若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i=1共被执行的次数为()。

a. nb. n+1c. 1 B. n-1 C.n-1d. 1题目6若n的值为10,则执行“for(i=0;; i++) if(i>n/3) break;”语句后,i的值为()。

a. 3b. 6c. 4d. 5题目7若n的值为10,则执行“for(i=1;i<n; i++) S;”语句的过程中,表达式i++共被执行的次数为()。

a. n+1b. nc. 1d. n-1题目8若n的值为10,则执行“for(i=0;i<n; i++) for(j=i; j<n; j++) S;”语句后,内层循环体S语句的执行总次数为()。

a. n(n-1)/2b. (n+1)/2c. n*nd. n(n+1)/2题目9若n的值为10,则执行“while(n-->0)s+=n;”语句的过程中,循环体被执行的次数为()。

a. 8b. 10c. 11d. 9题目10若n的值为5,s的值为0,则执行“while(n-->0) s+=n;”语句后,s的值为()。

C语言练习3(数组)=参考答案

C语言练习3(数组)=参考答案

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

C语言习题级答案3

C语言习题级答案3

测试题31.C语言中不合法的字符常量是 CA、’\65’B、’\xff’C、’\028’D、’&’2.具有相同类型的指针变量p与数组a,不能进行的操作是(C)。

A、p=&a[0];B、p=a;C、p=&a;D、*p=a[0];3.若有x=22,y=26,z=0;,则执行下面语句后,z的输出结果是(B )z=x>y?x:yA、72B、26C、48D、224.对于建立函数的目的,正确的说法是DA、提高程序的执行效率B、减少程序的篇幅C、减少程序文件所占的内存D、提高程序的可读性5.有定义:char*p1,*p2;则下列表达式中正确合理的是CA、p1/=5B、p1+=5C、p1=&p2D、p1*=p26.以下程序的运行结果是(B)。

main(){int i=1,sum=0;while(i<10) sum=sum+1;i++;printf("i=%d,sum=%d",i,sum);}A、i=10,sum=9B、运行出现错误C、i=2,sum=17.若变量已正确定义且k 的值是4,计算表达式( j =4, k--) 后,j和k的值为(C)A、j=4, k=4B、j=3, k=3C、j=4, k=3D、j=3, k=48.给出以下定义:char x[ ]="abcdefg";char y[ ]={'a','b','c','d','e','f','g'};则正确的叙述为(A)A、数组x的长度大于数组y的长度B、数组x和数组y等价C、数组x和数组y的长度相同D、数组x的长度小于数组y的长度9.在下述程序中,判断i > j共执行了多少次 C#include <stdio.h>main(){int i = 0, j = 10, k = 2, s = 0;for( ; ; ){i += k;if(i > j){printf(“%d\n”, s);break;}s += i;}}A、4B、8C、6D、710.下列各m的值中,能使m%3==2&&m%5==3&&m%7==2为真的是(D)。

C语言课程习题

C语言课程习题

C语言综合练习题(一)一选择题(7分,每小题0.5分)1.设a为整型变量,初值为12,执行完语句 a+=a-=a*a后,a的值是()。

A 552B 144C 264D -2642.下列标识符中,不能作为合法的C用户定义标识符的是()。

A a3_b3B voidC _123D IF3.下列整数值中,不正确的八进制或十六进制数值常量是()。

A 0xcdB -017C -ox123D 0xfdc4.若给定条件表达式(M)?(a++):(a--),则其中表达式M和()等价。

A M==0B M=1C M!=1D M!=05.在C语言中,if语句后的一对圆括号中,用以决定分支流程的表达式为()。

A 只能是逻辑表达式 B只能是关系表达式C 只能是逻辑表达式或关系表达式 D可以是任意表达式6.以下程序的输出结果为()。

main( ){ char c;int i;for(i=65;i<68;i++){ c=i+32;switch(c){ case ‘a’:printf("%c,",c);break;case ‘b’:case ‘e’:printf("ok,");default: printf("end");}} }A a,ok,endB a,ok,endendC a,ok,end,endD a,ok,ok7.数组名作为实参数传递给函数时,数组名被处理为()。

A 该数组的长度B 该数组的元素个数C 该数组的首地址D 该数组中各元素的值8.关于return语句,下列正确的说法是()。

A 可以在同一函数中出现多次B 在主函数中不能出现C 必须在每个函数中出现D 只能在除主函数之外的函数中出现一次9.以下程序的输出结果为()。

#define A 3#define B(a) (A+1)*amain(){ int x;x=3*A+B(7);printf("x=%d\n",x);}A x=93B x=37C x=60D x=9010.设有以下定义,则以下对变量w的赋值()是错误的。

C语言练习题及答案

C语言练习题及答案

综合强化练习一一、选择题(每题1分,共40分)1、以下叙述正确的是( )A)C语言总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序的执行总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分2、下列合法的用户标识符为( )A)_4sum B) static C) 1max D) #dtotal3、ch为字符型变量,则下面赋值语句正确的为( )。

A)ch="ABC" B) ch="A" C) ch= a D) ch=674、C语言中整形常量有哪几种形式( )A) 十进制、八进制、十六进制B) 二进制、十进制、八进制、十六进制C) 二进制、八进制、十六进制D) 二进制、十进制5、字符串" China "在内存中占用的字节数是( )A) 1 B) 2 C) 5 D) 66、int x,y; x=7/2;y=7/2.0;则x的值为( )A) 3.500000 3D)3 37、下面程序int x=0x2B; printf("%d",x);的输出结果为( )A) 2B B) 0x2B C) 43 D) 448、实型常量用指数形式表示,下列哪一项不是合法的( )A)C)356e39、设有语句int a=3;则执行了语句a-= a+=a*a;后变量a的值是( )A)0 B)3 C) -9 D) -310、下列字符中,错误的转义字符是( )A)'\085' B) '\\' C) '\0' D) '\n '11、下面程序的输出结果是( )int a=2;if(a=5) a=a+2;printf("%d ",a);A) 2 B) 4 C) 5 D)712、下列程序段的循环次数是( )int k=0;while(k= =0) printf("%d",k);k--; printf ("\n");A) 无限次B) 0 次C) 1次D)2次13、下列说法正确的是( )A) 在循环体中可以用break语句结束本次循环B) 在循环体中可以用continue语句结束本次循环C) break语句仅能使用在switch结构中D) 可以使用continue语句跳出switch结构14、以下正确的函数形式是()。

C语言练习题及答案解析三

C语言练习题及答案解析三

C语言练习题及答案解析三(共3页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--一、单项选择题1.下面不属于C语言的数据类型是【】。

A) 整型 B) 实型 C) 逻辑型 D) 双精度实型分析:和其它高级语言相比,C语言中没有逻辑型数据,也没有逻辑型变量。

本题正确答案为C。

语言中,下列属于构造类型的是【】。

A) 整型 B) 实型 C) 指针类型 D) 结构体类型分析:C语言中构造类型的数据有三种:数组、结构体和共用体,数组是同类型数据的集合,结构体是不同类型的数据集合。

本题正确答案为D。

3.下列字符串不符合标识符规定的是【】。

A) SUM B) sum C) 3cd D) end分析:标识符规定只能由26个英文字母(大小写均可),数字0~9和下划线组成,且不能以数字开头,题中的3cd不符合规定。

本题正确答案为C。

4.下面能正确表示八进制数的是【】。

A) 0x16 B) 029 C) -114 D) 033分析:选项A)以0x开头是十六进制数,选项B)虽然是0开头,但出现了数字9,选项C)是十进制数。

本题正确答案为D。

5.下面四个选项中,均是合法实数的选项是【】。

A) B) C) D)-e5分析:实数有两种表示形式:小数形式和指数形式,小数形式必须有小数点,指数形式中,字母e之前必须有数字,e之后必须是整数。

选项A)中的"",选项C)中的"",选项D)中的"-e5"均是不合法的。

本题正确答案为B。

语言中,字符型数据在内存中存储形式是【】。

A) 原码 B) 反码 C) 补码 D) ASCII码分析:C语言中int型数据是以补码形式存放的,字符型数据是以ASCII码形式存放的。

本题正确答案为D。

7.下列正确的字符型常量是【】。

A) "a" B) ′\\\\′ C) "\\r" D) 277分析:字符常量的定义是用单引号括起来的一个字符,A和C的定界符不对,D超过了char型数据的表示范围,′\\\\′是转义字符。

C语言练习题3

C语言练习题3

一、语言基础选择题1.C语言程序的基本单位是 CA) 程序行 B) 语句 C) 函数 D) 字符2. 以下说法中正确的是 CA) C语言程序总是从第一个的函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分3.一个C语言程序的上机步骤是 AA) 编辑,编译,连接,执行 B) 编译C) 编辑,连接,执行 D) 连接,编译,执行4. 已知有定义:char ch;则如下正确的赋值为 AA) ch=‘M’; B) ch=’55’; C) ch="M"; D) ch="55";5.在Turbo C环境中,查看程序运行结果的快捷键是 DA) F5 B) Ctrl+F9 C) F8 D) Alt+F56.下列变量名中合法的是 CA) B.C.Tom B) 3a6b C) _ba7b D) $ABC7. C语言中,要求运算数必须是整型的运算符是 DA) / B)+ + C)!= D)%8. 已知 int j,i=1;则执行j=-i++; i和j的值为 BA)1,-1 B)2,-1 C)1,1 D)2,19.在C语言中,数字029是一个 AA)八进制数 B)十六进制数 C)十进制数 D)非法数10.C语言中用于结构化程序设计的三种基本结构是__A___A)顺序结构、选择结构、循环结构 B)if、switch、breakC)for、while、do-while D)if、for、continue11.如下程序运行后的输出结果是__B__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\n",a,b);}A)a=1,b=1 B)a=2,b=1 C)a=1,b=0 D)a=2,b=2 12.若i为整型变量,则以下循环执行次数是_C__for(i=2;i==0;)printf(“%d”,i--);A)无限次 B)0次 C)1次 D)2次13.设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a的值是_D__ A)3 B)0 C)9 D)-1214.有输入语句:scanf("a=%d,b=%d",&a,&b),为使变量a值为3,b值为7,从键盘输入数据的正确形式是_A__A)a=3,b=7<回车> B)a=3 b=7<回车> C)3 7<回车> D)3,7<回车>15.已知在ASCII代码中,字母A的序号为65,以下程序的输出的结果是_D__#include <stdio.h>main(){char c1='A', c2='Y';printf("%d,%d\n",c1,c2);}A) 因输出格式不合法,输出错误信息 B)65,90C)A,Y D)65,8916.如下程序段int a=14,b=15,x;char c='A';x=(a&&b)&&(c<'B');执行该程序段后,x的值为__D__A)ture B)false C)0 D)117.以下关于break和continue语句的说明正确的是_C___A) break用于switch结构,continue用于循环结构。

C语言练习题3

C语言练习题3

C语言练习题一、判断题1.C语言的switch语句中case后可为字符和整型常量表达式或有确定值的变量及表达式。

(N)2.如果有一个字符串,其中第十个字符为’\n’,则此字符串的有效字符为9个。

(N)3.两个字符串中的字符个数不相同时也可以进行字符串大小的比较。

(Y)4.如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。

(Y)5.C语言的switch语句中的case后只能为整型或字符型常量或常量表达式。

(Y)6.变量根据其作用域的范围可以分作局部变量和全局变量。

(Y)7.循环结构中的continue语句是整个循环终止执行。

(N)8.char*p=”girl”;的含义是定义字符型指针变量p,p的值是字符串“girl”.(N)9.C语言中只能逐个引用数组元素而不能一次引用整个数组。

(Y)10. int a[3][4]={ {1},{5},{9} };它的作用是将数组各行第一列的元素赋初值,其余元素值为0。

(Y)11.C语言中“%”运算符的运算对象必须为整形。

(Y)12.函数strl en(“ASDFG\n”)的值是7。

(N)13.若有说明int c;则whil e(c=getchar());是正确的c语句。

(Y)14.表达式,(j=3,j++)的值是4。

(N)15.在c程序中,函数既可以嵌套定义,也可以嵌套调用。

(N)16.Int i=20;Switch(i/10){Case 2:printf(“A”);Case 1:printf(“B”);}的输出结果为A (N)17.While 和d o…whil e循环无论在什么条件下它们结果都相同。

(N)18.逻辑表达式-5&&!8的值为1.(N)19.逻辑表达式-5&& 8的值为1.(Y)二、单选题1.若有说明:int a[3][4]=0;则下面正确的叙述是(D)A.只有元素a[0][0]可得到初值0B.此说明语句不正确C.数组a中各元素都可以得到初值,但其值不一定是0D.数组a中每个元素均可得到初值02.C语言规定,函数返回值的类型是由(D)A.return语句中的表达式类型所决定B.调用该函数时的主调函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定3.若有下列定义,则对a数组元素A[2]地址的正确引用是(C)A.*(P+5)B.*p+2C.*(a+2)D.*&a[5]4.为表示关系x≥y≥z,应使用C语言表达式(A)A.(x>=y)&&(y>=z)B.(x>=y)AND(y>=z)C.(x>=y>=z)D.(x>=z)&&(y>=z)5.设有说明:char c; int x; doubl e z;则表达式c*x+z值的数据类型为(D)A.fl oatB.intC.charD.d oubl e6.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是(D)A.a>=10 or a<=10B.a>=0 | a<=10C.a>=10 && a<=10D.a>=10 || a<=07.已知p,p1为指针变量,a为数组名,j为整型变量,下列赋值语句中不正确的是(D)A.p=&j,p=p1B.p=aC.p=&a[j]D.p=108.C语言的if语句嵌套时,if与else的配对关系是(A)A.每个else总是与它上面的最近的if配对B.每个else总是与最外层的if配对C.每个else与if的配对是任意的D.每个else总是与它上面的if配对9.已知x=43,ch=’A’,y=0;则表达式(x>=y&&ch<’B’&&!y)的值是(C)A.0B.语法错C.1D.“假”10.如果int a=2,b=3,c=0,下列描述正确的是(B)A.a>=b!=c和a>(b!=c)的执行顺序是一样的B.!a!=(b!=c)表达式的值是1C.a||(b=c)执行后b的值为0D.a&&b>c的结果为假11.若有说明:int *p1,*p2,m=5,n;以下均是正确的赋值语句的选项是(C)A.p1=&m;p2=&p1B.p1=&m;p2=&n;*p1=*p2;C.p1=&m;p2=p1D.p1=&m;*p2=*p112.设有说明:char w; int x; fl oat y; d ouble z;则表达式w*x+z-y值的数据类型为(D)A.fl oatB.intC.charD.d oubl e13. C语言规定,在一个源程序中,main函数的位置(C)A.必须在最开始B.必须在系统调用的库函数的后面C.可以任意D.必须在最后14.C语言的if语句嵌套时,if与else的配对关系是(A)A.每个else总是与它上面的最近的if配对B.每个else总是与最外层的if 配对C.每个else与if的配对是任意的D.每个else总是与它上面的if配对15.下列字符序列中,不可用做C语言标识符的是(B)A. b70B. #abC. symbolD. a_116.整形变量x=1,y=3,经下列计算后,x的值不等于6的是(B)A.x=(x=1+2,x*2)B.x=y>2?6:5C.x=9-(--y)-(y--)D.x=y*4/217.若有下列定义,则对a数组元素a[2]地址的正确引用是(C)A. *(p+5)B. *p+2C. *(a+2)D. *&a[5]18.在C语言中,能代表逻辑值“真”的是(D)A.TrueB.大于0的数C.非0整数D.非0的数19.任何一个C语言的可执行程序都是从(B)开始执行的,A. 程序中的第一个函数B. main( )函数的入口处C. 程序中的第一条语句D. 编译预处理语句20.下列语句中,不正确的是(C)A. char a[2]={1,2};B. int a[2]={‘1’,’2’};C. char a[2]={‘1’,’2’,’3’};D.char a[2]={‘1’};21.C语言中不可嵌套的是(B)A.函数调用B. 函数定义C.循环语句D.选择语句22.若有说明:int *p1,*p2,m=5,n;以下均是正确赋值语句的选项是(C)A. p1=&m;p2=&p1B. p1=&m;p2=&n; *p1=*p2C. p1=&m;p2=p1D. p1=&m;*p2=*p123.在C语言中,调用函数除函数名以外,还必须有(C)A. 函数预说明B. 实际参数C.()D. 函数返回值24.以下不能对二维数组a进行正确初始化的语句是(C)A. int a[2][3]={0};B. int a[ ][3]={ {1,2} ,{0} };C. int a[2][3]={ {1,2},{3,4},{5,6} };D. int a[ ][3]={1,2,3,4,5,6};25.C语言中whil e 和do-whil e 循环的主要区别是(B)A. While 的循环控制条件比d o-whil e的循环控制条件严格B. d o-whil e 的循环体至少无条件执行一次C. d o-whil e 允许从外部转到循环体内D.d o-whil e循环体不能是复合语句26.以下叙述正确的是(A)A. C程序中注释部分可以出现在程序中任意合适地方B. 花括号“{ “和”}”只能作为函数体的定界符C. 构成C程序的基本单位是函数,所有函数名都可以由用户命名D. 分号是C语言之间的分隔符,不是语句的一部分27.变量的指针,其含义是指该变量的(B)A.值B.地址C.名D.一个标志28.若有说明: int a[ 3] [ 4]={ 0};则下面的叙述正确的是(D)A.只有元素a[0] [0]可得到初值0B.此说明语句不正确C.数组a 中各元素都可得到初值,但其值不一定为0D.数组a中各元素均可得到初值029.表达式18/4*sqrt(4.0)/8的值的数据类型为(C)A. intB. fl oatC. d oubl eD. 不确定30.以下标识符中,不能作为合法的C用户定义标识符的是(C)A. AnswerB. ToC. SignedD. if31.变量p为指针变量,若p=&a,下列说法不正确的是(D)A. &*p==&aB. *&a==aC. (*p)++==a++D. *(p++)==a++32. int a=3,b=2,c=1;if(a>b>c)a=b;else a=c;则a的值为(C)。

c语言第3-4章练习题有答案

c语言第3-4章练习题有答案

第3-4章练习题一、选择题1. 以下错误的字符串赋值或赋初值方式是:(A)char str1[]=”string”, str2[]=”12345678”;st r cpy(str2,str1);(B)char str[7]={‟s‟,‟t‟,‟r‟,‟i‟,‟n‟,‟g‟};(C)char str[10] ;str =”string”;(D)char *str; str=”string”;2. 数组定义中不正确的是:(A)int a[2][3]; (B)int b[][3]={0,1,2,3};(C)int c[100][100]={0}; (D)int d[3][]={{1,2},{1,2,3},{1,2,3,4}};3. 以下对一维数组a正确初始化的是:(A)int a[10]=(0,0,0,0,); (B)int a[10]={};(C)int a[10]={0}; (D)int a[10]=(10*2);4.以下选项中,不能正确赋值的是:(A)char s1[10];s1="Ctest"; (B)char s2[]={'C', 't', 'e', 's', 't'};(C)char s3[20]="Ctest"; (D)char *s4="Ctest\n"5.若有说明:int i, j=2,*p=&i;,则能完成i=j赋值功能的语句是:(A)i=*p; (B)*p=*&j; (C)i=&j; (D)i=**p;6. 下面各语句行中,不能正确进行字符串操作的语句行是:(A) char st[10]={"abcde"}; (B) char s[5]={'a','b','c','d','e'};(C) char *s; s="abcde"; (D) char *s; scanf("%s",s);7.设有如下的程序段,执行上面的程序段后,*(ptr+5)的值为:char str[ ]="Hello"; char *ptr; ptr=str;(A) 'o' (B) '\0' (C)不确定的值(D) 'o'的地址8. 请选出以下语句的输出结果printf("%d\n",strlen("\t\"\065\xff\n"));(A)5 (B)14 (C)8 (D)输出项不合法,无正常输出9.以下程序段给数组所有的元素输入数据,请选择正确答案填入。

C语言练习题及参考答案

C语言练习题及参考答案

练习题1及参考答案1. 单项选择题(1)以下并非C语言的特点的是????? 。

A.? C语言简洁和紧凑B. 能够编制出功能复杂的程序C.? C语言可以直接对硬件进行操作D.? C语言移植性好【答】B(2)一个C程序的执行是从????? 。

A.? main()函数开始,直到main()函数结束B. 第一个函数开始,直到最后一个函数结束C. 第一个语句开始,直到最后一个语句结束D.? main()函数开始,直到最后一个函数结束【答】A(3)在C程序中,main()的位置????? 。

A. 必须作为第一个函数B. 必须作为最后一个函数C. 可以任意D. 必须放在它所调用的函数之后【答】C(4)一个C程序是由????? 。

A. 一个主程序和若干子程序组成B. 一个或多个函数组成C. 若干过程组成D. 若干子程序组成【答】B(5)下列说法正确的是????? 。

A. 在执行C程序时不是从main()函数开始的B.? C程序书写格式限制严格,一行内必须写一个语句C.? C程序书写格式比较自由,一个语句可以分行写在多行上D.? C程序书写格式严格要求一行内必须写一个语句,并要求行号【答】C2. 填空题(1)一个C源程序至少有?? ①?? 个main()函数和?? ②?? 个其他函数。

【答】①一? ②若干(2)任何C语句必须以????? 结束。

【答】分号(3)C语言源程序的基本单位是????? 。

【答】函数(4)C编译程序的功能是????? 。

【答】将C源程序编译成目标代码练习题2及参考答案1. 单项选择题(1)以下字符串为标识符的是????? 。

A. _MY????????? ??????B. 2_2222?????? ?????? ??????C. short?????? ?????? ??????D. LINE 5【答】A(2)下列符号可以作为变量名的是????? 。

A. +a????? ?????? ??????B. *p?????? ?????? ?????? ??????C. _DAY????? ?????? ??????D. next day【答】C(3)设c是字符变量,则以下表达式正确的是????? 。

C语言程序设计练习题第3部分答案

C语言程序设计练习题第3部分答案

C程序设计语言练习题第三部分63.已知:int x; 则下面说明指针变量pb的语句是正确的。

A) int pb=&x; B)int *pb=x; C)int *pb=&x D)*pb=*x;64.有如下程序段:int *p,a,b=1;p=&a;*p=10;a=*p+b;执行该程序段后,a值是。

A) 12 B) 11 C) 10 D) 编译出错65.若有说明:int i,j=2,*p=&i;,则能完成i=j赋值功能的语句是。

A) i=*p; B) *p=*&j; C) i=&j; D) i=**p;66.已知:int a,*p=&a; 则为了得到变量a的值,下列错误的表达式为______。

A) *&p B) *p C) p[0] D) *&a67.已知static int a[2][3]={2,4,6,8,10,12};正确表示数组元素地址的是__。

A) *(a+1)B) a[1]+2 C) a[1]+3 D) a[0][0]68.已知int a[3][4],*p=*a; p+=6;那么*p和______的值相同。

A) *(a+6) B) *(&a[0]+6) C) *(a[1]+2)D) *(&a[0][0]+6)69.已知说明int (*p)[M]; 其中p是______。

A) M个指向整型变量的指针B) 指向M个整型变量的函数指针C) 一个指向具有M个整型元素的一维数组的指针D) 具有M个指针元素的一维指针数组,每个元素都只能指向整型变量70.若有定义和语句:int c[4][5], (*cp)[5]; cp=c;则对c数组元素的引用正确的是哪个?A)cp+1 B)*(cp+3) C)*(cp+1)+3 D)*(*cp+2)71.设有以下定义:int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*prt)[3]=a,*p=a[0];则下列能够正确表示数组元素a[1][2]的表达式是__________。

C语言程序设计练习三(参考答案)

C语言程序设计练习三(参考答案)

《C语言程序设计》练习三(参考答案)三、阅读分析题1.请阅读分析下面程序,然后写出运行结果。

x=8,y=-5x=-5,y=82.请阅读分析下面程序,然后写出运行结果。

1 5 6 303.请阅读分析下面程序,然后写出运行结果。

#**$@@4.阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。

运行结果:d,100,D,1445.阅读下面程序,并回答问题:(1)若程序运行时,输入3、2和5,则输出结果是什么?(2)写出程序所实现的功能。

答:(1)5,3,2(2)输入三个整数,按从大到小的顺序输出。

6.阅读下面程序,并回答问题:(1)程序输出结果是多少?(2)外循环执行完一次时,m和n的值分别是多少?(3)将while(n>m)n-=m;语句删除后,程序运行情况如何?答:(1)m=1(2)m=9,n=5(3)程序进入无限循环17.阅读下面程序,写出运行结果。

运行结果:7,10,9,9878.阅读下面程序,并回答问题:(1)若程序运行时,输入6和9,输出结果是什么?输出结果是:1(2)说明程序的功能。

程序功能:输入2个数存入a和b变量中,计算a2+b2存入x变量中,如果x大于100则将x整除100的值存入y中并输出y的值,否则输出a+b的值。

9.阅读下面程序,并回答问题:(1)程序输出结果是什么?输出结果:a=8(2)该程序完成什么功能?程序功能:求两个数的最大公约数(3)若将while循环替换为do-while循环,请写出相应的程序段。

#include <stdio.h>void main( ){ int u,v,a,b,t,r;u=24;v=16;if(u>v){t=u;u=v;v=t;}a=u;b=v;do{ r=b%a;b=a;a=r;}while(r!=0);printf(″b=%d\n″,b);}10.从键盘输入字符A时,写出下面程序的运行结果。

C语言习题第三章

C语言习题第三章

第3章最简单的程序设计-顺序程序设计3.1选择题1.在下列选项中,不正确的赋值语句是( )。

(A)++t; (B)n1=(n2=(n3=0)); (C)k=i==j; (D)a=b+c=1;2.以下叙述中正确的是( )。

(A)用C程序实现的算法必须要有输入和输出操作(B)用C程序实现的算法可以没有输出但必须要输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出3.若变量已正确定义并赋值,下面符合C语言语法的表达式是( )。

(A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b4.若变量a、i已正确定义,且i已正确赋值,合法的语句是( )。

(A) a==1 (B) ++i; (C) a=a++=5; (D) a=int(i);5.设a和b均为double型变量,且a=5.5,b=2.5,则表达式(int)a+b/b的值是()。

(A)6.500000(B)6(C)5.500000(D)6.0000006.C语言中用于结构化程序设计的三种基本结构是( )。

(A)顺序结构、选择结构、循环结构(B)if、switch、break(C)for、while、do-while(D)if、for、continue7.以下选项中非法的表达式是( )。

(A)0<=x<100(B)i=j==0(C)(char)(65+3) (D)x+1=x+18.有以下定义语句double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是( )。

(A)a=a+b=b++ (B)w%((int)a+b)(C)(c+w)%(int)a (D)w=a==b;9.以下选项中,与k=n++完全等价的表达式是()。

(A)k=n,n=n+1(B)n=n+1,k=n(C)k=++n(D)k+=n+110.以下叙述中错误的是( )。

c语言练习题3

c语言练习题3

一、选择题1、假设int型变量占两个字节的储存单元,若有定义:int x[10]={0,2,4}; 则数组x在内存中所占字节数为( )A、3B、6C、10D、202、下列合法的数组定义是( )A、int a[]=”string”;B、int a[5]={0,1,2,3,4,5};C、char a=”string”;D、char a[]={0,1,2,3,4,5};3、若给出一下定义:char x[]=”abcdefg”; char y[]={…a‟ , ‟b‟ , ‟c‟ , ‟d‟ , ‟e‟ , ‟f‟ , ‟g‟}; 则正确的叙述为( )A、数组x和数组y等价B、数组x和数组y的长度相同C、数组x的长度大于数组y的长度D、数组x的长度小于数组y的长度4、程序:main(){int n[3],i,j,k;for(i=0;i<3;i++)n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<3;j++)n[j]=n[i]+1;printf("%d\n",n[1]);}运行结果是 ( )A、2B、1C、0D、35、一下程序的输出结果是( ) main(){int i,k,a[10],p[3];k=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%d\n",k);}A、20B、21C、22D、236、一下程序运行后,输出结果是( )A、10000B、10010C、00110D、10100main(){int y=18,i=0,j,a[8];do{a[i]=y%2;i++;y=y/2;}while(y>=1);for(j=i-1;j>=0;j--)printf("%d",a[j]);printf("\n");}7、一下程序的输出结果是 ( )A、ABCDB、 ABCDC、EFGD、EFGHFGH EFG JK IJKLKL IJ OMmain(){char w[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%s\n",w[k]);}8、当执行下面的程序时,如果输入ABC,则输出结果是 ( )A、ABC6789B、ABC67C、12345ABC6D、ABC456789#include"stdio.h"#include"string.h"main(){char ss[10]="12345";gets(ss);strcat(ss,"6789");printf("%s\n",ss);}9、不能把字符串“Hello!”赋给数组b的语句是 ( )A、char b[10]={‘H’,’e’,’l’,’l’,’o’,’!’};B、char b[10];b=”Hello!”;C、char b[10];strcpy(b,”Hello!”);D、char b[10]=”Hello!”;10、若有定义和语句: char s[10];s=”abcd”;printf(“%s\n”,s); 则运行结果是 ( )A、输出abcdB、输出aC、输出ab cdD、编译不通过11、若有一下程序段:char str[]=”ab\n\012\\\””;printf(“%d”,strlen(str));该程序段的输出结果是 ( )A、3B、4C、6D、1212、下列程序的输出结果是 ( )A、12ba56B、6521C、6D、62main(){char ch[7]={"65ab21"};int i,s=0;for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)s=10*s+ch[i]-'0';printf("%d\n",s);}13、下面程序的输出是 ( )main(){char s[]="12134211";int v1=0,v2=0,v3=0,v4=0,k;for(k=0;s[k];k++)switch(s[k]){default: v4++;case'1':v1++;case'3':v3++;case'2':v2++;}printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);}A、v1=4,v2=2,v3=1,v4=1B、v1=4,v2=9,v3=3,v4=1C、v1=5,v2=8,v3=6,v4=1D、v1=8,v2=8,v3=8,v4=814、有以下程序#include<string.h>main(){char str[][20]={"Hello","Beijing"},*p=str;printf("%d\n",strlen(p+20));}程序运行后的输出结果是 ( )A、0B、5C、7D、2015、以下程序运行后的输出是 ( ) main(){int x[]={1,3,5,7,2,4,6,0},i,j,k;for(i=0;i<3;i++)for(j=2;j>=i;j--)if(x[j+1]>x[j]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<3;i++)for(j=4;j<7-i;j++)if(x[j]>x[j+1]){k=x[j];x[j]=x[j+1];x[j+1]=k;}for(i=0;i<8;i++)printf("%d",x[i]);printf("\n");}A、75310246B、01234567C、76310462D、1357024616、以下程序的输出结果是()main(){int b[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i<3;i++)for(j=i;j<=i;j++)t=t+b[i][b[j][j]];printf("%d\n",t);}A、3B、4C、1D、9二、填空题1、若想通过以下输入语句使a中存放字符串“1234”,b中存放字符“5”,则输入数据的形式应该是________......char a[10],b;scanf("a=%s\nb=%c",a,&b);......2、以下程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。

C语言习题 (3)

C语言习题 (3)
三.程序阅读题
1.用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,问在键盘上如何输入?
void main ( )
{ int a,b;
float x,y;
char c1,c2;
scanf(“a=%d b=%d”,&a,&b);
C)10 20 AB↙ D)10 20AB↙
10.执行下列程序片段时输出结果是( )。
int x=5,y;
y=2+(x+=x++,x+8,++x);
printf(“%d”,y);
A)13 B)14 C)15 D)16
习题三
一.选择题
1.C语言的程序一行写不下时,可以( )。
A)用逗号换行 B)用分号换行
C)在任意一空格处换行 D)用回车符换行
2.putchar ( )函数可以向终端输出一个。
A)整型变量表达式值 B)实型变量值
scanf(“ %f %e”,&x,&y);
scanf(“ %c %c”,&c1,&c2);
}
2.写出以下程序的输出结果。
main ( )
{ int y=3,x=3,z=1;
printf(“%d %d\n”,(++x,y++),z+2);
void main ( )
{ int a,b;
scanf(“%2d%2d%3d”,&a,&b);
printf(“%d\n”,a+b);
}

C语言基础练习题(含答案)

C语言基础练习题(含答案)

目录第1-3章C语言基础知识习题 (2)1选择题 (2)2填空题 (7)3答案及部分解析 (9)第4章选择结构习题 (11)1选择题 (11)2填空题...........................................................................................................................17 3答案及部分解析...........................................................................................................23第5章循环结构习题. (26)1选择题 (26)2填空题: (32)3答案及部分解题分析...................................................................................................39第6章数组习题 (41)1.单项选择题 (41)2.填空题 (44)3.判断题 (45)4.程序填空题 (45)5.阅读程序,分析程序的功能。

(49)第7章函数习题 (55)1.单项选择题 (55)2.填空题 (56)3.判断题 (57)4.程序填空题 (58)5.写出下列程序运行结果..............................................................................................59第8章指针习题 (67)1选择题 (67)2填空题 (69)第1-3章C语言基础知识习题1选择题1.以下不是C语言的特点的是()。

A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。

C语言3数组练习题3

C语言3数组练习题3

第三章数组一、选择题1.合法的数组定义是A.int a[ ]=”string”; B.int a[5]={0,1,2,3,4,5};C.char a=”string”; D.char a[ ]={0,1,2,3,4,5};2.若有定义和语句:char s[10]; s=”abcd”; printf(“%s\n”,s); 则结果是(以下u代表空格)A.输出abcd B.输出aC.输出abcd u u u u u D.编译不通过3.数组a[2][2]的元素排列次序是A.a[0][0],a[0][1],a[1][0],a[1][1] B.a[0][0],a[1][0],a[0][1],a[1][1]C.a[1][1],a[1][2],a[2][1],a[2][2] D.a[1][1],a[2][1],a[1][2],a[2][2]4.有以下语句,则下面是正确的描述static char x [ ]=“12345”;static char y[ ]={…1‟,…2‟,…3‟,…4‟,…5‟};A.x数组和y数组的长度相同。

B.x数组长度大于y数组长度。

C.x数组长度小于y数组长度D.x数组等价于y数组。

5.列不能正确进行字符串赋值操作的语句是A.char str[10];gets(str); B.char*str;str=“a”;C.char*str;str=…a‟;D.charstr[10];strcpy(str,“hello”);6.若数组的长度为n,则该数组中的元素最多有n个。

若[3][5]是一个二维数组,则最多可使用的元素个数为A.8 B.10 C.15 D.57.若有说明:int a[3][4]; 则对a数组元素的非法引用是A.a['B'-'A'][2*1] B.a[1][3] C.a[4-2][0] D.a[0][4] 8.设有语句static char str[10]={“china”};printf(“%d”,strlen(str)); 则输出结果是A.10 B.5C.china D.69.表达式strlen(“string”)+strlen(“C”)的运算结果为A.9 B.10 C.7D.810.执行以下程序段后,s的值为。

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

一、单项选择题(每空1分,共25分,请将答案填入表格)1.以下叙述错误的是 ___ 。

A) 一个C源程序可由一个或多个函数组成B) 一个C源程序必须包含一个main函数C) C程序的基本组成单位是函数D) 在C程序中,注释说明只能位于一条语句的后面2.C语言中运算对象必须是整型的运算符是 ___ 。

A) %= B) / C) = D) 〈=3.有如下程序,程序运行后的输出结果是 ___ 。

main(){ unsigned int x=0xffff;printf(“%u\n”,x );}A) -1 B) 65535 C) 32767 D) 0xFFFF4.若有代数式(其中e仅代表自然对数的底数,不是变量),则以下能够正确代表该代数式的C语言表达式是 ___ 。

A) sqrt(abs(n^x+e^x)B) sqrt(fabs(pow(n,x)+pow(x,e)))C) sqrt(fabs(pow(n,x)+exp(x)))D) sqrt(fabs(pow(x,n)+exp(x)))5.字符串“\t12\x42\\abcd”的长度是 ___ 。

A) 14 B) 9 C) 15 D)206.以下叙述中错误的是 ___ 。

A) 计算机不能直接执行用C语言编写的源程序B) C语言经C编译程序编译后,生成后缀为.obj的文件是二进制文件C) 后缀为.obj的文件,经连接后生成后缀为.exe的文件是二进制文件D) 后缀为.obj和.exe的二进制文件都可以直接运行7.以下选项中,与k=x++;完全等价的表达式是 ___ 。

A) x=x+1;k=x; B) k=x;x=x+1;C) k=x+1; D) k+=x+1;8.以下叙述中正确的是 ___ 。

A) break语句只能用于switch 语句中B) continue语句的作用是:使程序的执行流程跳出包含它的所有循环C) break语句只能用在循环体内和switch语句体内D) 在循环体内使用break语句和continue 语句的作用相同9.判断字符型变量 ch是否为大写英文字母的表达式为 ___ 。

A) ‘A’<=ch<=‘Z’B) ch>=‘A’&& ch<=‘Z’C) ch>‘a’&& ch<=‘z’D) ch>=‘A’|| ch<=‘Z’10.若表达式(m)? a++:a--, 则表达式m和 ___等价。

A) m==0 B) m!=0 C) m=0 D) m=111.设有 int i=010,j=10;则printf( “%d,%d\n”,++i,j--);的输出是 _ _。

A) 11,10 B) 9,10 C) 010,9 D)10,912.已知w=1,x=2,y=3,z=3,a=4,b=2;则执行语句(a=w>x)&&(b=y>z) ;后,a,b的值为 ___ 。

A) 1和1 B) 0和0 C) 4和2 D) 0和213.定义如下变量关系,则下面语句的输出结果是_________。

int i;int x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf(" %d",x[0][ 2-i]);A) 1 5 9 B) 1 2 3 C) 3 5 7 D) 3 2 114.已知数组float b[3][2];该数组行下标的范围是________。

A) 1—3 B) 0—3 C) 1—2 D) 0—215.下列语句中,正确的是 ___ 。

A) #define PI=3.14159 B) include “stdio.h”C) define M 3 D) #define PI 3.1415916.有如下程序, 该程序段的输出结果是 ___ 。

void main(void){ int n=5;while(n>2) { n--; printf(“%d”,n);}}A) 543 B)432 C)4321 D)543217.下列四种数组定义,合法的数组定义是 ___ 。

A) char a[ ]="hello"; B) int a[4]={4,3,2,1,0};C) char a="hello" ; D) char a[4]= "hello";18.设p1和p2均为指向int型的指针变量, k为int型变量,下列不正确的赋值语句是___ 。

A)k=*p1+*p2; B)k=*p1*(*p2)C)p2=k D)p1=p219.有如下程序,该程序的输出结果是 ___ 。

void main(void){ char s[]=“ABCD”,*p;for( p=s+1;p<=s+3;p++)printf(“%c\n”,*p); }A) ABC B)A C)B D)BCDBC B C CDC CD D20.对于C程序的函数,下列叙述中正确的是 ___ 。

A)函数的定义不能嵌套,但函数调用可以嵌套B)函数的定义可以嵌套,但函数调用不能嵌套C)函数的定义和调用均可以嵌套D)函数的定义和调用均不能嵌套21.设x为整型变量, p是指向整型的指针变量, 则下列赋值表达式正确的是____ 。

A) p=&x B) p=x C) *p=&x D) *p=*x22.函数定义时,形参是整型变量,则函数调用时,实参不可以是________。

A) 整型常量 B) 字符型常量 C) 数组名 D) 整型表达式23. 以下程序的输出结果是________。

void main(void){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],*q=p+2;printf(“%d\n”,*p+*q);}A) 16 B) 10 C) 8 D) 624.设有如下定义,若有p=&ab;,则对ab中成员项的正确引用是________。

struct ss{ int a; float b; }ab,*p;A) (*p).ab.a B) p->a C) p->ab.a D) p.ab.a25. 若要对E盘上的一个非空文件“w1.dat”进行修改,正确的打开语句是________。

A) fp=fop en(“w1.dat”,“r+”);B) fp=fopen(“w1.dat”, “w+”);C) fp=fopen(“E:\\w1.dat”,“r+”);D) fp=fopen(“E:\\w1.dat”,“w+”);二、填空题(每空1分,共15分,请将答案填入表格)1.若s是int型变量,且s=7,则表达式: s/2+(s+1)%2 的值为_________。

2.C语言中,以 ___打头的int常数是十六进制。

3.有说明语句char s=‘\102’; S包含了_____个字符。

4.有数学表达式sinx+ -6x,写出其对应的C语言的表达式 ____________ _____。

5.有定义语句:int a[][3]={ {0},{1},{2} }; 则数组元素a[1][2]的值是。

6.若程序中使用了函数strlen(),则必须包含的头文件名为____________。

7.有如下程序,该程序的输出结果是。

void main(void){int x=1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;case 2: a++,b++;}printf("a=%d,b=%d\n",a,b);}8. 若a函数中调用了b函数,而b函数又调用了a函数,这种调用称为_______调用。

9.函数调用时,若形参和实参均为数组名时,传递方式为 ____ ____。

10.若有以下定义语句,则输出的结果是_____________。

char s1[ ]=“abcdef”, *s2=“1234”;printf(“%d\n”, strlen(strcpy(s1,s2)));11.若宏定义为:#define y(x) 2+x则表达式a=4+3*y(2)的值为。

12.设有以下语句:static int a[4][2]={1,2,3,4,5,6,7,8};int (*p)[2];p=a;则 *(*(p+2)+1)的值为。

13.在turbo C中,int型数据占2字节,则定义struct node{char x[10];int y;union{float a;long b;}ab;}t;后,sizeof(t)= 。

14.设有一个名为“ww1.c”的C程序,其主函数为 main(int argc,char *argv[]),如果在执行时,输入的命令行为: ww1 aa bb cc↙则形式参数argc的值是______。

15. 执行下列程序段后,(**q-1)的值为 ____________。

int a,*p,**q;a=100;p=&a; q=&p;三、程序分析题(每小题5分,共30分,请将答案填入表格)1.#include <stdio.h>void main(void){int a=10,b=11;int c=0,d=0;printf("%5d,%5d\n",a++,--b);printf("%5d",a&&b);printf("%5d",!a);printf("%d\n",!c);printf("%5d",d+=a);}要求注明输出格式!2. #include <stdio.h>void main(void){int i,j;for(i=1;i<4;i++){for(j=i;j<4;j++)printf(“%d+%d=%d ”,i,j,i+j);printf(“\n”);}}3. #include<stdio.h>int a=1,b;void fun(void);void main(void){static int c;int b=-5;printf("a=%d,b=%d,c=%d\n",a,b,c); fun();a+=1;c+=2;printf("a=%d,b=%d,c=%d\n",a,b,c); }void fun(){int c=10;a+=1;b+=2;printf("a=%d,b=%d,c=%d\n",a,b,c); }4. 说明如下程序作用,并写出运行结果。

相关文档
最新文档