C语言试题3
c语言试题及答案

C语言试题及答案
试题一:变量和数据类型
1.请简要解释变量在C语言中的作用。
答:变量在C语言中用于存储数据,可以通过变量名来访问和修改存储的数据。
变量的作用是方便程序处理
数据、保存中间结果,以及实现算法和逻辑。
2.C语言中的基本数据类型有哪些?
答:C语言中的基本数据类型包括整型、浮点型、
字符型和空类型(void)。
具体的基本数据类型有:char、int、float、double和void等。
试题二:运算符和表达式
1.请简要解释赋值运算符的作用。
答:赋值运算符(=)用于将右侧表达式的值赋给
左侧操作数(变量)。
它的作用是将一个值存储到一个变
量中,使得该变量可以在程序中进行后续的操作和计算。
2.C语言中的逻辑运算符有哪些?
答:C语言中的逻辑运算符有与运算(&&)、或运算(||)和非运算(!)。
逻辑运算符用于连接多个条件,判断多个条件之间的关系并返回结果。
试题三:条件语句和循环语句
1.请解释C语言中的条件语句if-else的用法,并举例说明。
答:条件语句if-else用于根据给定的条件选择不同的执行路径。
如果条件为真(非零),则执行if语句块中的代码;否则执行else语句块中的代码。
以下是一个简单的例子:
```c int num = 10;
if (num > 0) { printf(。
C语言测试题三

测试题三一、填空1、以下选项中合法的变量是()A、 5aB、_10_C、A%D、sizeof2、有以下程序main(){ int x=35, B; char z='B' ;B = (( x ) && ( z <'b' ));printf("%d\n", B ); }程序运行后的输出结果是()A、1B、0C、35D、663、有以下程序main(){ int a = 3;do{ printf("%d,", a-=2 ); }while( ! (--a) );printf("\n"); }程序运行后的输出结果是A、1B、1, -2C、3,0D、1,04、有以下程序main(){ int a[3]={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[1] );}程序运行后的输出结果是A、0B、2C、1D、35、有以下程序#include <stdio.h>#define SUB( X, Y ) (X+1)*Ymain(){ int a=3, b=4;printf("%d\n",SUB(a++ ,b++ ));}程序运行后的输出结果是A、25B、20C、12D、166、有如下程序int sum(int a, int b){return a + b - 2;}main(){int i;for (i=0; i<5; i++)printf("%d", sum(i, 3));printf("\n");}程序运行后的输出结果是A、12345B、01234C、45678D、543217、有以下函数int fun( char *s, char *t ){ while(( *s )&&( *t ) && (*t++ == *s++ ) );return (*s-*t);}函数的功能是A、比较两个字符串的大小B、求字符串的长度C、将字符串s复制到字符串t中D、连接字符串s和字符串t8、有以下程序#include <stdio.h>int m1(int x,int y){ return x<=y ? x :y; }int m2(int x,int y){ return x<=y ? y :x; }int fun(int a,int b){ return a+b; }main(){ int x=2,y=3,z=1;printf("%d\n", fun(m1(x,y),m2(y,z)));}程序的运行结果是A、3B、4C、5D、69、有以下程序#include <stdio.h>#define FNA(x) x*x#define FNB(x) x+xmain(){ int a=2,b=4;printf("%d,%d\n",FNA(FNB(a)),FNB(FNA(b)));}程序运行后的输出结果是A、8,32B、16,32C、8,16D、16,1610、有以下程序main(){ int c[6]={10,20,30,40,50,60}, *p,*s;p = c; s = &c[5];printf("%d\n", s-p ); }程序运行后的输出结果是A、6B、50C、5D、6011、有以下程序#include <stdio.h>main(){ int aa[3][3]={ {2},{4},{6} }, i, *p = &aa[0][0];for ( i=0; i<2; i++ ){ if( i == 0 ) aa[i][i+1] = *p + 1;else ++p;printf("%d ", *p );}}程序运行后的输出结果是A、2 6B、2 3C、4 3D、4 612、有以下程序int change(int* data){return (*data) ++;}main() {int data = 123;change(&data);printf("%d,", data);data = change(&data);printf("%d,", data); printf("\n");}程序运行后的输出结果是A、124,124,B、123,124,C、124,123,D、123,123,13、有以下程序void fun( int x, int y, int *z ){ *z = y-x; }main(){int a, b, c;fun(10,5,&a ); fun(7,a,&b ); fun(a,b,&c );printf("%d,%d,%d\n", a,b,c );}程序运行后的输出结果是A、-5,-12,-7B、5,2,3C、-5,-12,-17D、5,-2,-714、有以下程序#include <stdio.h>int k=5;void f(int *s){ s=&k;*s=k;}main( ){ int m=3;f(&m);printf("%d,%d\n", m, k);}程序运行后的输出结果是A、3,3B、5,5C、3,5D、5,315、有以下程序#include <stdio.h>#include <string.h>main( ){ char a[20]="ab",b[20]="cdef";int k=0;strcat(a,b);while(a[k]!='\0') { b[k]=a[k]; k++;}puts(b);}程序的运行结果是A、abcdefB、cbcdefC、cdefD、ab二、看程序写结果1、main(){int a = 0, b = 1;if (a++ && b++)printf("T");elseprintf("F");printf("a=%d,b=%d\n", a, b);}程序运行后的输出结果是2、void fun ( int *s ){static int j=0;do s[j] += s[ j+1]; while(++j<2);}main(){int i, a[10]={1,2,3,4,5};for( i=1; i<3; i++ ) fun( a );for( i=1; i<5; i++ ) printf("%d",a[i]);printf("\n"); }3、void change(int* array, int len){for (; len>=0; len--)array[len] += 2;}main() {int i, array[5] = {1,2};change(array, 4);for (i=0; i<4; i++)printf("%d,", array[i]);printf("\n");}4、void fun( int *s, int n1, int n2 ){int i,j,t;i=n1; j=n2;while( i<j ){ t=*(s+i); *(s+i)=*(s+j); *(s+j)=t;i++; j--;}}main(){int a[10] = { 1,2,3,4,5,6,7,8,9,0} ,i, *p = a;fun( p,0,3 ); fun( p,4,9 ); fun( p,0,9 );for( i=0; i<10; i++ )printf("%d ", *( a+i ) );printf("\n" );}程序运行后的输出结果是5、main(){char *s="120119110";int n0,n1,n2,nn,i;n0=n1=n2=nn=i=0;do{switch(s[i++]){ default : nn++;case '0' : n0++;case '1' : n1++;case '2' : n2++;}} while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);} 程序的运行结果是6、void f(int x[], int n){ if ( n > 1){ printf("%d,", x[0]);f(&x[1], n-1);printf("%d,", x[0]);}elseprintf("%d,", x[0]);}main( ){ int z[3] = {4, 5, 6};f(z, 3);printf("\n"); }程序运行后的输出结果是三、填空1、以下程序的功能是:通过调用calc函数,把所求得的两数之和值放入变量add 中,并在主函数中输出。
《C语言程序设计》试题3及答案

三一.单项选择题?1.设int x=1,y=1;表达式(!x++ || y--)的值是_________??? A.0???? B. 1?????? C. 2???? D.-12.main( )? {? int n;???? ( n=6*4,n+6),n*2;???? printf(“n=%d\n”,n);? }?? 此程序的输出结果是______________.?? A.30??? B.? 24???? C.? 60????? D.? 483.若有如下定义,则__________是对数组元素的正确的引用。
?? int? a[10] , *p ;?? p=a ;?? p=a ;?? p=a ;?? p=a ;?? A.? *&a[10]???? B.? a[11]????? C.? *(p+10)????? D. *p4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________ ?? A.? 0???? B.? 4??? C.? - 4???? D.? 2???? 5.以下不能正确定义二维数组的语句是___________??? A . int a[2][2]={{1},{2}};???? B. int a[][2]={1,2,3,4};?? ?C. int a[2][2]={{1},2,3};????? D. int a[2][]={{1,2},{3,4}}; 6.程序段??? ??????的功能是将变量 u 、s中的最大值赋给变量t 。
??????? A.? if(u>s) t=u;t=s;?????? B. ?t=u;?? if(t ) ?t=s;???? ?C.? if(u>s) t=s;else t=u;? ??D . ?t=s; if(u ) ?t=u;7.下列程序段的输出结果是???? ??????。
void main(){?? int k;for (k=1;k<5;k++〉{ ?if(k%2!=0)??printf("#");else ??printf(“*”) ;? } }A. #*#*????? B . *#*#??? C.? ##?????? D. 以上都不对8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是? (35)??? 。
C语言试题3

C语言试题3一、选择题(每小题2分,共40分)1.下列属于整型常量的是________。
A.12B.12.0C.-12.0D.10E102.下列是字符串常量的是:()A.'HolleWorld'B."15"C.VC D.'m'3.下列表达式为关系表达式的为_________。
(其中a为一整型变量)A.3+4*5 B.a==10 C.a>0?a:-a D.a=14.下列对一维数组的声明正确的是:()A.int a(10);B.int n=10,a[n];C.int n;scanf(“%d”,&n);int a[n];D.#define SIZE10int a[SIZE];5.根据C语言的语法规则,下列________个是不合法用户标识符。
A.int B.array C.string1 D._exam6.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型为。
A.float B char C int D double7.已知int x=5,y=6,z=7;以下语句执行后x,y,z的值是。
if(x>y)z=x;x=y;y=z;A)x=5,y=6,z=7B)x=6,y=7z=7C)x=6,y=5,z=5D)x=6,y=7,z=68.执行int a=8;a+=a*a;语句后,a的值是______。
A.24 B.64 C.72 D.5129.C语言用()表示逻辑“真”的值。
A.true B.t或y C.非零数D.整型值010.两个指针变量的值相等时,表明两个指针变量是________________。
A.占据同一内存单元。
B.指向同一内存单元地址或者都为空。
C.是两个空指针。
D.都没有指向。
11.字符串指针变量中存入的是________________。
A.字符串的首地址B.字符串C.第一个字符D.字符串变量。
3试题 c语言试题以及答案

参考答案:错
对
错
第5题:在标准C中,“=”是判断两个数是否相等。
参考答案:错
对
错
第6题:在标准C语言中,指针函数参数传递是单向传递,且传递的是变量的地址
参考答案:对
对
错
第7题:EOF能够被识别为常量
参考答案:对
对
错
第8题:对于定义int *p赋初值;则初值是赋给P变量的。
参考答案:对
对
错
第9题:C语言中数据的存储结构是指数据的逻辑结构在内存中的表示
参考答案:对
第2题:下面程序的输出结果是:
#include<stdio.h>
int func( int a, int b)
{
int c;
c=a+b;
return c;
}
main()
{
int x=6, y=7, z=8, r;
r=func(x--+y--,z--);
A、for (;;x+=i);
B、while (1) x++
C、for (i=10;;i--) sum+=i;
D、for (;(c=getchar())!='\n';) printf("%c",c);
第10题:字符串指针变量中存入的是
参考答案:A
A、字符串的首地址
B、字符串
C、第一个字符
D、字符串变量
--------------------------------------------------------------------------------
c语言试题及答案_百度文库

c语言试题及答案_百度文库1. 选择题- 题目1:以下哪个是C语言中的关键字?- A. int- B. INT- C. Integer- D. int32- 答案:A- 题目2:C语言中,哪个运算符用于比较两个值是否相等?- A. ==- B. =- C. !=- D. <=- 答案:A2. 填空题- 题目3:在C语言中,用于定义一个整型变量的关键字是____。
- 答案:int- 题目4:C语言中,用于执行条件判断的关键字是____。
- 答案:if3. 简答题- 题目5:请简述C语言中函数的定义格式。
- 答案:函数定义的格式通常为:`返回类型函数名(参数列表) { 函数体; }`。
- 题目6:编写一个C语言程序,计算并输出1到100的和。
- 答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("Sum of 1 to 100 is: %d\n", sum);return 0;}```5. 判断题- 题目7:C语言中,数组的索引是从0开始的。
- 答案:正确- 题目8:在C语言中,`char`类型可以存储一个汉字。
- 答案:错误6. 多选题- 题目9:以下哪些是C语言的标准库函数?- A. printf- B. scanf- C. malloc- D. strcpy- 答案:A, B, C, D- 题目10:给定一个整数数组`int arr[] = {1, 2, 3, 4, 5};`,请计算数组中所有元素的和。
- 答案:158. 论述题- 题目11:请论述C语言中指针的概念及其重要性。
- 答案:指针是C语言中一个非常重要的概念,它存储了变量的内存地址。
通过指针,可以访问和操作内存地址指向的变量,实现动态内存分配、函数参数传递等高级功能。
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语言程序设计》模拟试卷三一、填空题。
(每空2分,共16分)1.在内存中,短整型变量占字节,单精度实型变量占字节,字符型变量占字节。
2.一个C语言文件就是由若干个组成。
3.设有以下变量定义,并已赋确定得值char w; int x; float y; double z;则表达式:w*x+z-y所求得得数据类型为。
4.若x为int类型,请以最简单得形式写出与逻辑表达式!x等价得C语言关系表达式。
5.若有如下图所示五个连续得int类型得存储单元并赋值如下图,a[0]得地址小于a[4]得地址。
p与s就是基类型为int得指针变量。
请对以下问题进行填空。
a[0] a[1] a[2] a[3] a[4]p,给s赋值,使s指向最后一个存储单元a[4]得语句就是。
(2)若指针s指向存储单元a[2],p指向存储单元a[0],表达式s-p得值就是。
二、单项选择题。
(每题2分,共40分)1.设有 int x=11; 则表达式 (x++ * 1/3) 得值就是()。
A) 3 B) 4 C) 11 D) 122.下列程序得输出结果就是()。
A) 3 B) 3、2 C) 0 D) 3、07main(){double d=3、2; int x,y;x=1、2; y=(x+3、8)/5、0;printf(“%d \n”, d*y);}3.下列程序执行后得输出结果就是(小数点后只写一位)()。
A) 6 6 6、0 6、0 B) 6 6 6、7 6、7C) 6 6 6、0 6、7 D) 6 6 6、7 6、0main(){ double d; float f; long l; int i;i=f=l=d=20/3;printf("%d %ld %f %f \n", i,l,f,d);scanf("%d",&d);}4.下列变量定义中合法得就是()。
A) short _a=1-、le-1; B) double b=1+5e2、5;C) long do=0xfdaL; D) float 2_and=1-e-3;5.设 int x=1, y=1; 表达式(!x||y--)得值就是()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.给定一个整型变量a,写两段代码,第一个设置a的3bit为1,第二个设置a的3bit为0. 以上两种操作,均保持其他bit位不变。
第三位置1: int a |= (1<<3);第三位置0: int a &= ~(1<<3);2.嵌入式系统中经常需要程序员去访问特定内存位置的值。
在某工程中,要求设置一绝对地址为0x6759a的整型变量的值为0xaa66,编译器是纯粹的ANSI编译器,写代码完成这一任务。
int *p = (int *)0x6759a;*p = 0xaa66;3.下面代码输出什么Void foo(void){Unsigned int a = 6;Int b = -20;If (a+b > 6){Printf(“> 6\n”);}Else{Printf(“< 6\n”);}}>64.下面的输出是什么Char *ptr = NULL;Ptr = (char *)malloc(0);If (ptr == NULL){Printf(“ptr is null”);}Else{Printf(“ptr is not null”);}ptr is not null 开辟空间地址5.下面的输出是什么main(){char *ptr = ” feixun Systems”;*ptr++; printf(“%s\n”,ptr);ptr++;printf(“%s\n”,ptr);}eixun Systemsixun Systems6.#define DOUBLE(x) x+x,i = 5*DOUBLE(10);i是多少?正确的声明是什么?输出i值为60 原因: 计算过程为5 * 10 + 10;正确声明: #define DOUBLE(x) (x+x)7.设有以下说明和定义:typedef struct{Int i;char k[5];char c;} DATE;struct data{int cat;DATE cow;Unsigned short dog;} ;DATE max;则语句printf( "%d", sizeof(struct data)+ sizeof(max));的执行结果是Sizeof(struct data) 20Sizeof(max) 12输出为328.请找出下面代码中的所以错误说明:以下代码是把一个字符串倒序,如“abcd”倒序后变为“dcba”#include"string.h"main(){char*src="hello,world";char* dest=NULL;int len=strlen(src);dest=(char*)malloc(len);char* d=dest;char* s=src[len];while(len--!=0)d++=s--;printf("%s",dest);return 0;}9.写出输出结果main(){int a[5]={1,2,3,4,5};int *ptr=(int *)(&a+1);printf("%d,%d",*(a+1),*(ptr-1));}2, 510.下面代码有什么问题int main(){char a;char *str=&a;strcpy(str,"hello");printf(str);return 0;}11.#include <stdio.h>#include <stdlib.h>void getmemory(char *p)p=(char *) malloc(100);strcpy(p,"hello world");}int main( ){char *str=NULL;getmemory(str);printf("%s/n",str);free(str);return 0;}有什么问题调用函数执行完后指针的地址即被释放掉不会返回主函数可改为Char *getmemory(char *p){p=(char *) malloc(100);strcpy(p,"hello world");return p;}12.#include "stdio.h"#include "string.h"void main(){char aa[10];char bb[10] = “Feixun”;printf("%d, %d, %d, %d",strlen(aa), sizeof(aa), strlen(bb), sizeof(bb));}输出是多少?1, 10, 6, 1013.char *f();char *f1();int main(){printf(“%s\n”, f());printf(“%s\n”, f1());return 0;char * f(){char s[] = "Hello";return s;}char *f1(){static char s[] = "World" ;return s;}输出?空行(虽然返回地址但是数组已经释放)World14.改错Typedef struct date{Int a;Char *b;Int c;}DATE;Int main{DATE *obj = NULL;Obj = (DATE *)malloc(sizeof(DATE));Obj->a = 4;Strcpy(obj->b, “feixun”);Obj->c = 5;Return 0;}使用结构体内指针之前要对其进行初始化: obj->b = (char *)malloc(sizeof(char));15.写出下列代码的输出内容#include <stdio.h >int inc(int a){return(++a);}int multi(int*a,int*b,int*c){return(*c=*a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2) (int*,int*,int*);void show(FUNC2 fun,int arg1, int*arg2) {INCp=&inc;int temp =p(arg1);fun(&temp,&arg1, arg2);printf("%d\n",*arg2);}main(){int a;show(multi,10,&a);return 0;}题目有些错误感觉题中程序应该如下:#include <stdlib.h>#include <stdio.h>int inc(int a){return(++a);}int multi(int *a, int *b, int *c){return(*c = *a**b);}typedef int(FUNC1)(int in);typedef int(FUNC2)(int *,int *, int *);void show(FUNC2 fun,int arg1, int *arg2){int temp = inc(arg1);fun(&temp, &arg1, arg2);printf("%d\n", *arg2);}int main(){int a = 100;show(multi,10,&a);return 0;}输出结果为: 110 主函数中调用show函数将10自增1,然后再乘以10 将结果赋给a16. 下述关于枚举类型名的定义中,正确的是__ba) enum a={one,two,three};b) enum a {one=9,two=-1,three};c) enum a={"one","two","three"};d) enum a {"one","two","three"};17.用变量a给出下面的定义a) 一个整型数int ab)一个指向整型数的指针int *ac)一个指向指针的的指针,它指向的指针是指向一个整型数int **ad)一个有10个整型数的数组int a[9]e) 一个有10个指针的数组,该指针是指向一个整型数的。
int (*a[9])f) 一个指向有10个整型数数组的指针int (*a)[9]g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数int (*a)(int b)h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数int (*a[9])(int b)18.写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(X,Y) ((X)>(Y)?(Y):(X))19.用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)。