C语言练习题2
- 格式:doc
- 大小:100.00 KB
- 文档页数:17
下列叙述中不正确的是 (C) A、函数可以带参数、也可以不带参数。 B、 main函数在C程序中必须有惟一一个 C、C程序的执行从main函数开始,所以main函数必须放在程序最前面 D、每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 以下四个程序中,完全正确的是(D).
A、#include main(); { /* programming */ printf(″programming!\n″); } B、#include main() {/*/* programming */*/ printf(″programming!\n″); } C、include main() {/* programming */ printf(″programming!\n″); } D、#include main() {/*/ programming /*/ printf(″programming!\n″); } C语言中的基本数据类型包括(D) A、整型、逻辑型、字符型 B、整型、实型、逻辑型、字符型 C、整型、实型、逻辑型 D、整型、实型、字符型 以下选项中能表示合法常量的是(D). A、实数:1.5E2.0 B、整数:1,200 C、字符斜杠:’\’ D、字符串:”\007” 设char x=040; 执行语句printf("%d\n",x=x<<1);后的输出结果是(A) A、64 B、120 C、100 D、160 设int a=2,b=-1,c=2; 执行语句if(aA、2 B、3 C、1 D、0 下列语句将小写字母转换为大写字母,其中正确的是( A ) A、if(ch>='a'&&ch<='z') ch=ch-32; B、if(ch>='a'&ch<='z') ch=ch-32; C、ch=(ch>='a'&&ch<='z')?ch-32; D、ch=(ch>'a'&&ch<'z')?ch-32:ch; 合法的数组定义语句是( D) A、char a[ ]=[0,1,2,3,4,5]; B、int a[5]={0,1,2,3,4,5}; C、 char a="string"; D、 char a[ ]="string"; 下列程序段的运行结果为( A) char s[]= "a\128b\\\tcd\n";printf("%d", strlen(s)); A、9 B、10 C、11 D、8 下列各叙述中,不正确叙述项是(A ) A、语句return(a,b); 则函数可以返回两个值 B、定义局部变量时,省略对变量的存储类别定义,则变量是自动型变量 C、函数调用时,实参可以是常量、变量或表达式 D、函数调用时,形参只有在被调用时才被创建(分配存储单元) 以下叙述正确的是(C). A、C语言程序是由过程和函数组成的 B、C语言中除了main函数,其他函数不可作为单独文件形式存在 C、C语言函数可以嵌套调用,例如:fun(fun(x)) D、C语言函数不可以单独编译 下面的函数调用语句中func函数的实参个数是(D). func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8))); A、8 B、4 C、5 D、3 宏定义为#define div(x,y) x/y; 语句"printf("div(x,y)=%d\n", div(x+3,y-3));" 作宏替换后为(B )
A、printf("x/y%d\n",(x+3)/(y-3)); B、 printf("div(x,y)=%d\n ",x+3/y-3;); C、printf("x/y=%d\n",x+3/y-3;); D、printf("x/y=%d\n", x+3/y-3); 设有宏定义: #define IsDIV(k,n) ((k%n==1)?1:0)且变量m已正确定义并赋值, 则宏调用:IsDIV(m,5)&&IsDIV(m,7) 为真时所要表达的是(C). A、 判断m被5或者7整除是否余1 B、 判断m是否能被5或者7整除 C、判断m被5和7整除是否都余1 D、判断m是否能被5和7整除 若有float a=1.5, b=3.5,*pa=&a;*pa*=3;pa=&b;,则正确的是( C) A、pa的值是1.5; B、 *pa的值是4.5 C、*pa的值是3.5 D、pa的值是3.5 若有定义:int (*ptr)(float);,其正确的含义是( C) A、ptr是-个函数名,该函数的返回值是指向int型数据的指针 B、ptr是指向-维数组的指针变量 C、ptr是指向函数的指针变量,该函数有-个float型参数,返回值是整型 D、ptr是指向int型数据的指针变量 若有以下定义 struct student {int num;char name[9];} stu[2]={1, "zhangsan",2, "lisi"}; 以下能输出字符串 "lisi"的语句是(A )
A、 printf("%s",&stu[1].name[0]); B、printf("%s",stu[0].name); C、printf("%s",&stu[1].name); D、printf("%s",stu[1].name[0]); C语言可以处理的文件类型是( A) A、文本文件和二进制文件 B、数据文件和二进制文件 C、以上答案都不完全 D、文本文件和数据文件 有以下程序 main() { int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是(A). A、12353514 B、12343514 C、12353513 D、12343513 若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为(C). A、2.4 B、1.9 C、1 D、2 若有以下程序 int r=8; printf("%d\n",r>>1); 输出结果是(A). A、4 B、2 C、8 D、16 设有定义:int k=1,m=2; float f=7;,则以下选项中错误的表达式是(D). A、k>=f>=m B、k=k>=k C、-k++ D、k%int(f) 关于简单程序设计的步骤和顺序的说法中正确的是(D). A、确定算法后,整理并写出文档,最后进行编码和上机调试 B、先写好文档,再根据文档进行编码和上机调试,最后确定算法和数据结构 C、先编码和上机调试,在编码过程中确定算法和数据结构,最后整理文档 D、首先确定数据结构,然后确定算法,再编码,并上机调试,最后整理文档 以下 有以下程序 #include main() { char b,c; int i; b='a'; c='A'; for(i=0;i<6;i++) { if(i%2) putchar(i+b); else putchar(i+c); } printf("\n"); } 程序运行后的输出结果是(A). A、AbCdEf B、ABCDEF C、abcdef D、aBcDeF 有以下程序 #include main() { char s[]="012xy\08s34f4w2"; int i,n=0; for(i=0;s[i]!=0;i++) if(s[i]>='0'&&s[i]<='9') n++; printf("%d\n",n); } 程序运行后的输出结果是(D). A、7 B、8 C、0 D、3 若有以下说明和定义 union dt { int a; char b; double c; }data; 以下叙述中错误的是(C). A、变量data所占内存字节数与成员c所占字节数相等 B、data的每个成员起始地址都相同 C、程序段:data.a=5;printf("%f\n",data.c);输出结果为5.000000 D、data可以作为函数的实参 设有如下说明 typedef struct ST { long a; int b; char c[2]; } NEW; 则下面叙述中正确的是(B). A、以上的说明形式非法 B、NEW是一个结构体类型 C、ST是一个结构体类型 D、NEW是一个结构体变量 char a1[]="abc",a2[80]="1234";将a1串连接到a2串后面的语句是(D). A、strcpy(a2,a1); B、strcpy(a1,a2); C、strcat(a1,a2); D、strcat(a2,a1); int a[10]; 给数组a的所有元素分别赋值为1、2、3、……的语句是(A). A、for(i=1;i<11;i++)a[i-1]=i; B、for(i=1;i<11;i++)a[0]=1; C、for(i=1;i<11;i++)a[i+1]=i; D、for(i=1;i<11;i++)a[i]=i; 以下能正确定义一维数组的选项是(C). A、char a={'A','B','C'}; B、int a[5]="0123"; C、char a[]={0,1,2,3,4,5}; D、int a[5]={0,1,2,3,4,5}; 有以下程序 #include main() { char ch[3][5]={“AAAA”, “BBB”, “CC”}; printf(“%s\n”,ch[1]); } 程序运行后的输出结果是(B). A、CC B、BBB C、AAAA D、BBBCC 若有说明语句:double *p,a;则能通过scanf语句正确给输入项读入数据的程序段是(A). A、p=&a; scanf(″%1f″,p); B、p=&a: scanf(″%1f″,*p); C、*p=&a; scanf(″%f″,p); D、*p=&a: scanf(″%1f″,p); 有以下程序 prt(int *m,int n) { int i; for(i=0;i m[i]++; } main() { int a[]={1,2,3,4,5},i;