专升本C语言100题及答案
c语言专升本试题及答案
c语言专升本试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是()。
A. varB. letC. intD. define答案:C2. 下列哪个选项不是C语言中的运算符?()A. %B. &&C. ==D. ||答案:B3. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A4. 下列哪个选项是合法的C语言函数声明?()A. int fun(int a, int b);B. int fun();C. int fun(int a, b);D. int fun(int a, int b) { ... }答案:A5. C语言中,用于定义一个二维数组的语法是()。
A. int array[3][2];B. int array[3][];C. int array[][2];D. int array[2,3];答案:A二、填空题(每题2分,共20分)1. C语言中,用于表示逻辑“与”操作的运算符是____。
答案:&&2. C语言中,用于表示逻辑“或”操作的运算符是____。
答案:||3. C语言中,用于表示逻辑“非”操作的运算符是____。
答案:!4. 在C语言中,用于定义一个字符类型的数组的关键字是____。
答案:char5. C语言中,用于声明一个无返回值的函数的关键字是____。
答案:void三、简答题(每题10分,共20分)1. 请简述C语言中指针的概念。
答案:指针是C语言中的一种数据类型,它存储了另一个变量的内存地址。
通过指针,程序可以直接访问和操作内存中的数据。
2. 请简述C语言中函数的作用。
答案:函数是C语言中封装代码块的一种方式,它允许将一段代码和相关的数据封装在一起,以便于复用和模块化编程。
四、编程题(每题20分,共40分)1. 编写一个C语言程序,实现求两个整数的和。
山西专升本c语言试题及答案
山西专升本c语言试题及答案一、单项选择题(每题2分,共20分)1. 下列关于C语言的描述,错误的是()。
A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持指针的使用答案:B2. 在C语言中,下列哪个关键字用于定义一个函数?()A. voidB. intC. returnD. struct答案:B3. 下列关于数组的描述,正确的是()。
A. 数组必须在声明时初始化B. 数组的大小在编译时确定C. 数组的索引从1开始D. 数组可以在运行时改变大小答案:B4. 下列关于指针的描述,错误的是()。
A. 指针可以存储地址B. 指针可以指向函数C. 指针可以作为函数的参数D. 指针不能作为函数的返回值答案:D5. 在C语言中,下列哪个运算符用于执行算术运算?()A. %B. &&C. =D. <答案:A6. 下列关于C语言中循环的描述,正确的是()。
A. for循环不能嵌套使用B. while循环可以与do-while循环嵌套使用C. do-while循环至少执行一次D. break语句可以用于退出switch语句答案:C7. 下列关于C语言中文件操作的描述,错误的是()。
A. 文件操作需要包含头文件<stdio.h>B. 文件指针的类型是FILE*C. 文件的打开操作使用fopen函数D. 文件的关闭操作使用fclose函数答案:A8. 在C语言中,下列哪个函数用于将字符串转换为浮点数?()A. atoiB. atofC. itoaD. sprintf答案:B9. 下列关于C语言中结构体的描述,错误的是()。
A. 结构体可以包含其他结构体B. 结构体可以包含数组C. 结构体不能包含函数D. 结构体不能包含指针答案:D10. 在C语言中,下列哪个关键字用于定义一个全局变量?()A. staticB. externC. registerD. auto答案:B二、填空题(每空1分,共10分)1. 在C语言中,使用________关键字可以定义一个静态局部变量。
c语言专升本试题及答案
c语言专升本试题及答案第一部分:选择题(共10题,每题2分,共20分)1. C语言中,以下哪个符号表示“不相等”?A. !=B. ==C. >D. <>2. 在C语言中,以下关键字用于定义常量的是:A. constB. staticC. externD. register3. 执行下列代码后,x的值是多少?int x = 10;x += x - x * 3;A. -10B. 0C. 10D. 204. 下列代码中,哪个是合法的数组定义?A. int arr[10];B. float arr[10.5];C. char arr[];D. bool arr[5];5. 以下哪种循环结构是“前测试循环”?A. for循环B. while循环C. do-while循环D. 都不是6. 下列代码中,哪行会引起编译错误?A. int a = 10;B. char b = a;C. float c = 2.5;D. double d = 2.5;7. 在C语言中,以下哪个运算符具有最高优先级?A. 加法运算符(+)B. 乘法运算符(*)C. 括号运算符(())D. 逻辑与运算符(&&)8. 下列代码中,哪个是正确的函数调用?A. max(5, 10);B. max(int a, int b);C. int max(int a, int b) { return a > b ? a : b; }D. int max(a, b) { return a > b ? a : b; }9. 下列哪个关键字用于定义结构体?A. structB. typedefC. unionD. sizeof10. 下列哪个函数用于释放动态分配的内存?A. calloc()B. realloc()C. malloc()D. free()第二部分:填空题(共5题,每题4分,共20分)1. C语言中,用于输出到控制台的函数是________。
专升本c语言100题
1: 第 1 题 m 个人的成绩存放在 score 数组中,请编写函数 fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在 below 所指定的函数中. 答案: int fun(int score[],int m,int below[]) { int i,k=0,aver=0; for(i=0;i<m;i++) aver+=score[i]; aver/=m; for(i=0;i<m;i++) if(score[i]<aver) { below[k]=score[i]; k++; } return k; }2: 第 2 题请编写函数 fun,它的功能是:求出 1 到 100 之内能北 7 或者 11 整除,但不能同时北 7 和 11 整除的所有证书,并将他们放在 a 所指的数组中,通过 n 返回这些数的个数. 答案: void fun(int *a, int *n) { int i,j=0; for(i=2;i<1000;i++) if ((i%7==0 || i%11==0) && i%77!=0) a[j++]=i; *n=j; }3: 第 3 题请编写函数 void fun(int x,int pp[],int *n),它的功能是: 求出能整除 x 且不是偶数的各整数,并按从小到大的顺序放在 pp 所指的数组中,这些除数的个数通过形参n 返回. 答案: void fun(int x, int pp[ ], int *n) { int i=1,j=0;k=0,*t=pp; for(i=0;i<=x;i++) if(i%2!=0) { t[j]=I; j++; } for(i=0;i<j;i++) if(x%t[i]==0) { pp[k]=t[i]; k++; } *n=k; }4: 第 4 题请编写一个函数 void fun(char *tt,int pp[]),统计在 tt 字符中"a"到"z"26 各字母各自出现的次数,并依次放在 pp 所指的数组中. 答案: void fun(char *tt, int pp[]) { int i; for (i=0;i<26;i++) pp[i]=0; while (*tt) { switch (*tt) { case 'a': pp[0]++;break; case 'b': pp[1]++;break; case 'c': pp[2]++;break; case 'd': pp[3]++;break; case 'e': pp[4]++;break; case 'f': pp[5]++;break; case 'g': pp[6]++;break; case 'h': pp[7]++;break; case 'i': pp[8]++;break; case 'j': pp[9]++;break; case 'k': pp[10]++;break; case 'l': pp[11]++;break; case 'm': pp[12]++;break; case 'n': pp[12]++;break; case 'o': pp[14]++;break; case 'p': pp[15]++;break; case 'q': pp[16]++;break; case 'r': pp[17]++;break; case 's': pp[18]++;break; case 't': pp[19]++;break; case 'u': pp[20]++;break; case 'v': pp[21]++;break; case 'w': pp[22]++;break; case 'x': pp[23]++;break; case 'y': pp[24]++;break; case 'z': pp[25]++;break; } tt++; } }5: 第 5 题请编写一个函数 void fun(int m,int k,int xx[]),该函数的功能是: 将大于整数 m 且紧靠 m 的 k 各素数存入 xx 所指的数组中. 答案: void fun(int m, int k, int xx[]) { int g=0,I,j,flag=1; for(i=m+1;i<m*m;i++) { for(j=0;j<I;j++) { if(i%j!=0) flag=1; else { flag=0; break; } } if (flag==1 && j>=i) { if (k>=0) { xx[g++]=i; k--; } else break; } } }6: 第 6 题请编写一个函数 void fun(char a[],char[],int n),其功能是:删除以各字符串中指定下标的字符.其中,a 指向原字符串,删除后的字符串存放在 b 所指的数组中,n 中存放指定的下标. 答案: void fun(char a[],char b[], int n) { int I,j=0;for (i=0;i<LEN;i++) if (i!=n) { b[j]=a[i]; j++; } b[j]='\0'; }7: 第 7 题请编写一个函数 int fun(int *s,int t,int *k),用来求除数组的最大元素在数组中的下标并存放在 k 所指的储存单元中. 答案: void fun (int *s, int t, int *k){ int I, max; max=s[0]; for(i=0;i<t;i++) if (s[i]>max) { max=s[i]; *k=I; } } 8: 第8 题编写函数 fun,功能是:根据以下攻势计算 s,计算结果作为函数值返回;n 通过形参传入.S=1+1/(1+2)+1/(1+2+3)+…….+1/(1+2+3+4+……+n) 答案: float fun (int n) { int i; float s=1.0, t=1.0; for(i=2;i<=n;i++) { t=t+i; s=s+1/t; } return s; }9: 第 9 题编写一个函数 fun,它的功能是:根据以下公式求 p 的值,结果由函数值带回. M 与 n 为两个正整数,且要求 m>n. p=m!/n!(m-n)! 答案: float fun(int m, int n) { float p,t=1.0; int I; for (i=1;i<=m;i++) t=t*I; p=t; for(t=1.0,i=1;i<=n;i++) t=t*I; p=p/t; for(t=1.0,i=1;i<=m-n;i++) t=t*I; p=p/t; return p; }10: 第 10 题编写函数 fun,它的功能是:利用以下的简单迭代方法求方程 cos(x)-x=0 的一个实根. 迭代步骤如下:(1)取x1 初值为0.0; (2)x0=x1,把x1 的值赋各x0;(3)x1=cos(x0),求出一个新的 x1; (4)若 x0-x1 的绝对值小于 0.000001,则执行步骤(5),否则执行步骤(2); (5)所求 x1 就是方程 cos(x)-x=0 的一个实根,作为函数值返回. 程序将输出 root=0.739085. 答案: float fun() { float x1=0.0,x0; do { x0=x1; x1=cos(x0); } while(fabs(x0-x1)>1e-6); return x1; }11: 第 11 题下列程序定义了 n×n 的二维数组, 并在主函数中自动赋值. 请编写函数fun(int a[][n]),该函数的功能是:使数组左下半三角元素中的值全部置成 0. 答案: int fun(int a[][N]) { int I,j; for(i=0;i<N;i++) for(j=0;j<=I;j++) a[i][j]=0; }12: 第 12 题下列程序定义了 n×n 的二维数组,并在主函数中赋值.请编写函数 fun,函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的 s. 答案: double fun(int w[][N]) { int I,j,k=0; double s=0.0; for(j=0;j<N;j++) { s+=w[0][j]; k++; } for(j=0;j<N;j++) { s+=w[N-1][j]; k++; } for(i=1;i<=N-2;i++) { s+=w[i][0]; k++; } for(i=1;i<=N-2;i++) { s+=w[i][N-1]; k++; } return s/=k; }13: 第 13 题请编写一个函数 void fun(int tt[m][n],int pp[n]),tt 指向一个 m 行 n 列的二维函数组,求出二维函数组每列中最小元素,并依次放入 pp 所指定一维数组中.二维数组中的数已在主函数中赋予. 答案: void fun(int tt[M][N], int pp[N]) { int I,j,min; for(j=0;j<N;j++) { min=tt[0][j]; for(i=0;i<M;i++) { if (tt[i][j]<min) min=tt[i][j]; } pp[j]=min; } }14: 第 14 题请别写函数 fun,函数的功能使求出二维数组周边元素之和,作为函数值返回. 二维数组中的值在主函数中赋予. 答案: int fun(int a[M][N]) { int I,j,s=0; for(j=0;j<N;j++) { s+=a[0][j]; s+=a[M-1][j]; } for(i=1;i<=M-2;i++) { s+=a[i][0]; s+=a[i][N-1]; } return s; }15: 第 15 题请编写一个函数 unsigned fun(unsigned w),w 使一个大于 10 的无符号整数, w 若使 n(n≥2)位的整数,则函数求出 w 后 n-1 位的数作为函数值返回. 答案: unsigned fun(unsigned w) { unsigned t,s=0,s1=1,p=0; t=w; while(t>10) { if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10; } return s; }16: 第 16 题请编写一个函数 float fun(double h),函数的功能使对变量 h 中的值保留 2 位小树, 并对第三位进行四舍五入(规定 h 中的值位正数). 答案: float fun(float h){ long t; float s; h=h*1000; t=(h+5)/10; s=(float)t/100.0; return s; }17: 第 17 题请编写一个函数 fun(char *s),该函数的功能使把字符串中的内容拟置. 答案: void fun(char *s) { char ch; int I,m,n; i=0; m=n=strlen(s)-1; while(i<(n+1)/2) { ch=s[i]; s[i]=s[m]; s[m]=ch; i++; m--; } }18: 第 18 题编写程序,实现矩阵(3 行 3 列)的转置(即行列互换). 答案: void fun(int array[3][3]) { int I,j,temp; for(i=0;i<3;i++) for(j=0;j<I,j++) { temp=array[i][j]; array[i][j]=array[j][i]; array[j][i]=temp; } }19: 第 19 题编写函数 fun,该函数的功能是:从字符中删除指定的字符,同一字母的大,小写按不同字符处理. 答案: void fun(char s[],int c) { int i=0; char *p; p=s; while(*p) { if(*p!=c) { s[i]=*p; i++; } p++; } s[i]='\0'; }20: 第 20 题编写函数 int fun(int lim,int aa[max]),该函数的功能是求出小于或等于lim 的所有素数并放在 aa 数组中,该函数返回所求的素数的个数. 答案: int fun(int lim, int aa[MAX]) { int k=0,I,j; for(i=lim;i>1;i--) { for(j=2;j<i;j++) if(i%j==0) break; else continue; if(j>=i) { aa[k]=i; k++; } } return k++; }21: 第 21 题请编写函数 fun,对长度位 7 个字符的字符串,除首尾字符外,将其余 5 个字符按ascii 码降序排列. 答案: void fun(char *s,int num) { char t; int I,j; for(i=1;i<num-2;i++) for(j=i+1;j<num-1;j++) if(s[i]<s[j]) { t=s[i]; s[i]=s[j]; s[j]=t; } }22: 第 22 题 n 名学生的成绩已在主函数中放入一个带头节点的链表结构中,h 指向链表的头节点.请编写函数 fun,它的功能是:找出学生的最高分,由函数值返回. 答案: double fun(STREC *h) { double max; STREC *q=h; max=h->s; do { if(q->s>max) max=q->s; q=q->next; } while(q!=0); return max; }23: 第 23 题请编写函数 fun, 该函数的功能是: 判断字符串是否为回文?若是则函数返回1, 主函数中输出 yes,否则返回 0,主函数中输出 no.回文是指顺读和倒读都是一样的字符串. 答案: int fun(char *str) { int I,n=0;fg=1; char *p=str; while (*p) { n++; p++; } for(i=0;i<n/2;i++) if (str[i]==str[n-1-i]); else { fg=0; break; } return fg; } 24:第 24 题请编写一个函数 fun,它的功能是:将一个字符串转换为一个整数(不得调用 c 语言提供的将字符串转换为整数的函数). 答案: long fun (char *p) { long s=0,t; int i=0,j,n=strlen(p),k,s1; if(p[0]=='-') i++; for(j=I;j<=n-1;j++) { t=p[j]-'0'; s1=10; for(k=j;k<n-1;k++) t*=s1; s+=t; } if(p[0]=='-') return –s; else return s; }25: 第 25 题请编写一个函数 fun,它的功能是:比较两个字符串的长度,(不得调用 c 语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度相同,则返回第一个字符串. 答案: char *fun(char *s,char *t) { char *p,*t1=t,*s1=s; int n=0;m=0; while (*s1) { n++; s1++; } while(*t1) { m++; t1++; } if(n>=m) p=s; else p=t; return p; }26: 第 26 题请编写一个函数 fun, 它的功能是: 根据以下公式求 x 的值(要求满足精度0.0005, 即某项小于 0.0005 时停止迭代): x/2=1+1/3+1×2/3×5+1×2×3/3×5×7+1×2×3×4/3×5×7×9+…+1×2×3×…×n/3×5×7×(2n+1) 程序运行后,如果输入精度0.0005,则程序输出为 3.14…. 答案: double fun(double eps) { double s; float n,t,pi; t=1;pi=0;n=1.0;s=1.0; while((fabs(s))>=eps) { pi+=s; t=n/(2*n+1); s*=t; n++; } pi=pi*2; return pi; }27: 第 27 题请编写一个函数 fun,它的功能是: 求除 1 到 m 之内(含 m)能北 7 或 11 整除的所有整数放在数组 a 中,通过 n 返回这些数的个数. 答案: void fun(int m, int *a, int *n) { int I,j=0; *n=0; for(i=1;i<=m;i++) if (i%7==0 || i%11 ==0) { a[j]=I; j++; } *n=j; }28: 第 28 题请编写一个函数 fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所在的下标通过形参传回.数组元素中的值已在主函数中赋予.主函数中 x 是数组名,n 是 x 中的数据个数,max 存放最大值,index 存放最大值所在元素的下标. 答案: void fun (int a[],int n, int *max, int *d) { int I; *max=a[0]; *d=0; for(i=0;I<n;i++) if(a[i]>*max) { *max=a[i]; *d=I; } }29: 第 29 题请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换). 答案: void fun(char *ss) { int I,n; n=strlen(ss); for(i=1;i<n;i+=2) if(ss[i]>='a'&& ss[i]<='z') ss[i]=ss[i]-32; }30: 第 30 题请编写一个函数 fun,它的功能是:求除一个 2×m 整型二维数组中最大元素的值,并将此值返回调用函数. 答案: int fun(int a[][M]) { int I,j,max; max=a[0][0]; for(i=0;i<2;i++) for(j=0;j<M;j++) if(a[i][j]>max) max=a[i][j]; return max; }31: 第 31 题请编写函数 fun,其功能是:将 s 所指字符串中除了下标为偶数,同时 ascii 值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在 t 所指的一个数组中. 答案: void fun(char *s,char t[]) { int I,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2==0&&s[i]%2==0) { t[j]=s[i]; j++; } t[j]='\0'; }32: 第 32 题请编写函数 fun,其功能是:将 s 所指字符串中除了下标为奇数,同时 ascii 值也为奇数的字符之外,其余的所有字符都删除,串中剩余字符所形成的一个新串放在 t 所指的一个数组中. 答案: void fun(char *s,char t[]) { int I,j=0,n; n=strlen(s); for(i=0;I,n;i++) if(i%2!=0&&s[i]%2!=0) { t[j]=s[i]; j++; } t[j]='\0'; }33: 第 33 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:使字符串中尾部的*号不得多于 n 个;若多于 n 个,则删除多于的*号;若少于或等于 n 个,则什么也不做,字符串中间和前面的*号不删除. 答案: void fun(char *a,int n) { int i=0;k=0; char *p, *t; p=t=a; while (*t) t++; t--; while(*t=='*') { k++; t--; } t++; if(k>n) { while (*p&&p<t+n) { a[i]=*p; i++; p++; } a[i]='\0'; } }34: 第 34 题学生的记录由学号和成绩组成,n 名学生的数据已在主函数中放入结构体数组s 中,请编写函数 fun,它的功能使:把分数最高的学生数据放在 h 所指的数组中,注意: 分数最高的学生可能不止一个,函数返回分数最高的学生的人数. 答案: int fun (STREC *a, STREC *b) { int I,j=0,n=0, max; max=a[0].s; for(i=0;i<N;i++) if(a[i].s>max)max=a[i].s; for(i=0;i<N;i++) if(a[i].s==max) { *(b+j)=a[i]; j++; n++; } return n; }35: 第 35 题请编写一个函数,用来删除字符串中的所有空格. 答案: void fun(char *str) { int i=0; char *p=str; while (*p) { if(*p!='') { str[i]=*p; i++; } p++; } str[i]='\0'; }36: 第 36 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部. 答案: void fun(char *a) { int i=0,n=0; char *p; p=a; while (*p=='*') { n++; p++; } while (*p) { a[i]=*p; i++; p++; } while(n!=0) { a[i]='*'; i++; n--; } a[i]='\0'; }37: 第 37 题某学生的记录由学号,8 门课程成绩和平均分组成,学号和 8 门课程的成绩已在主函数中给出.请编写函数 fun,它的功能是:求出该学生的平均分放在记录的 ave 成员中.请自己定义正确的形参. 答案: void fun(STREC *p) { double av=0.0; int i: for(i=0;i<N;i++) av+=p->s[i]; av/=N; p->ave=av; }38: 第 38 题请编写函数 fun,它的功能是:求出 ss 所指字符串中指定字符的个数,并返回此值. 答案: int fun(char *ss, char c) { int n=0; while (*ss) { if(*ss==c) n++; ss++; } return n; }39: 第 39 题请编写函数 fun,该函数的功能是:移动一维数组中的内容,若数组中由 n 个整数,要求把下标从 0 到 p(p 小于等于 n-1)的数组元素平移到数组的最后. 答案: void fun(int *w, int p, int n) { int b[N], i, j=0; for(i=0;i<=p;i++) { b[i]=w[i]; j++; } for(i=0;i<=p;i++) { w[j]=b[i]; j++; } }40: 第 40 题请编写函数 fun,该函数的功能是移动字符串中内容,移动的规则如下:把第1 到第 m 个字符,平移到字符串的最后,把第 m+1 到最后的字符移到字符串的前部. 答案: void fun(char *w,int m) { char b[N]; int I,j=0; for(i=0;i<m;i++) { b[j]=w[i]; j++; } for (i=0;i<strlen(w)-m;i++) w[i]=w[i+m]; for(j=0;j<m;j++) { w[i]=b[j]; i++; } w[i]='\0'; }41: 第 41 题请编写函数 fun,该函数的功能是:将 m 行 n 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中. 答案: void fun(char (*s)[n],char *b) {int i,j,k=0; for(j=0;j<n;j++) for(i=0;i<m;i++) {b[k]=*(*(s+i)+j) k++;} b[k]='\0';}42: 第 42 题下列程序定义了 n×n 的二维数组, 并在主函数中自动赋值. 请编写函数fun(int a[][n],int n),该函数的功能是:将数组右上半三角元素中的值乘以 m. 答案: void fun(int a[][n],int m) {int i,j; for(j=0;j<n;j++) for(i=0;i<=j;i++) a[j]=a[j]*m;}43: 第 43 题编写一个函数,从传入的 num 个字符串中找出一个最长的一个字符串,并通过形参指针 max 传回该串地址(用****作为结束输入的标志). 答案: char *fun(char (*a)[81],int num) {int i; char *max; max=a[0]; for(i=0;i<num;i++) if(strlen(max)<strlen(a)) max=a; return max;}44: 第 44 题编写一个函数, 该函数可以统计一个长度为 2 的字符串在另一个字符串中出现的次数. 答案: int fun(char *str,char *substr) {int n; char *p,*r; n=0; while(*str) {p=str; r=substr; while(*r) if(*r==*p) {r++; p++;} else break; if(*r=='\0') n++; str++;} return n;}45: 第 45 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除.形参 n 给出了字符串的长度,形参h 给出了字符串中前导*号的个数,形参 e 给出了字符串中最后的*个数. 在编写时不得使用 c 语言给提供得字符串函数. 答案: void fun(char *a,int n,int h,int e) {int i=0; char *p; for(p=a+h;p<a+n-e;p++) {*(a+i)=*p; i++;} *(a+i)='\0';}46: 第 46 题学生得记录由学号和成绩组称个,n 名大学生得数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能时:按分数的高低排列学生的记录,高分在前. 答案: void fun(strec a[]) {int i,j; strec t; for(i=0;i<n-1;i++) for(j=i;s<n;j++) if(a.s<a[j].s) {t=a; a=a[j]; a[j]=t; }}47: 第 47 题请编写一个函数 void fun(char *ss),其功能时:将字符串 ss 中所有下标为奇数位置上的字母转换为大写(若位置上不是字母,则不转换). 答案: void fun(char *ss) {int i,n=0; char *p=ss; while(*p) {n++; p++;} for (i=0;i<n;i++) if ((ss='a'&ss<='z')&i%2!=0) ss=ss-32; ss='\0';}48: 第 48 题请编写函数 fun,其功能是:将两个两位数的正整数 a,b 合并成一个整数放在 c 中.合并的方式是:将 a 数的十位和个位依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的百位和个位上. 答案: void fun(int a,int b,long *c) {*c=(a/10)*1000+(b/10)*100+(a%10)*10+b%10;}49: 第 49 题请编写函数 fun,其功能是:将 s 所指字符串中下标位偶数同时 ascii 值为奇数的字符删除,s 中剩余的字符形成的新串放在 t 所指的数组中. 答案: void fun(char *s,char t[]) {int i,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2==0&s%2!=0) else {f[j]=s; j++;} t[j]='\0';}50: 第 50 题已知学生的记录是由学号和学习成绩构成,n 名学生的数据已存入 a 机构体数组中.请编写函数 fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分). 答案: void fun(stu a[],stu *s) {int i,max; max=a[0].s; for (i=0;i<n;i++) if(a.s>max) {max=a.s; *s=a;}}51: 第 51 题请编写函数 fun,其功能是:将所有大于 1 小于整数 m 的非素数存入 xx 所指的数组中,非素数的个数通过 k 传回. 答案: void fun(int m,int *k,int xx[]) {int i,j; int t=0; for(i=2;i<m;i++) {j=2; while(j<i) {if(i%j==0) {xx[t]=i; t++; break;} j++;} *k=t;}}52: 第 52 题编写一个函数 fun,它的功能是:实现两个字符串的连接(不使用库函数strcat),即把 p2 所指的字符串连接到p1 所指的字符串后. 答案: void fun(char p1[],char p2[]) {int i=0,n=0; char *p=p1,*q=p2; while (*p) {p++; n++;} i=n; while(*p){p1=*q; q++; i++;} p1='\0';}53: 第 53 题请编写函数 fun,该函数的功能是:实现 b=a+a,即把矩阵 a 加上 a 的转置,存放在矩阵 b 中.计算结果在 main 函数中输出. 答案: void fun(int a[3][3],int b[3][3]) {int i,j,at[3][3]; for(i=0;i<=2;i++) for(j=0;j<=2;j++) at[j]=a[j]; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j]=a[j]+at[j];}54: 第 54 题学生的记录由学号和成绩组称个,n 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把低于平均分的学生数据放在 b 所指的数组中,低于平均分的学生人数通过形参 n 传回,平均分通过函数值返回. 答案: double fun(strec *a, strec *b,int *n) {double aver=0.0; int i,j=0; *n=0; for (i=0;i<n;i++) aver+=a.s; aver/=n; for(i=0;i<n;i++) if(a.s<aver) {b[j]=a; (*n)++; j++; } return aver;} 55: 第55 题请编写函数 fun,该函数的功能是:将 m 行 n 列的二维数组中的数据,按行的顺序依次放到一维数组中,一维数组中数据的个数存放在形参 n 所指的储存单元中. 答案: void fun(int(*s)[10],int *b,int *n,int mm,int nn) {int i,j; for(i=0;i<mm;i++) for(j=0;j<nn;j++) {b[*n]=*(*(s+i)+j); *n=*n+1;}}56: 第 56 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:除了尾部的*号之外,将字母串中其他*号全部删除.形参 p 已指向字符串中最后的一个字母.不使用 c 的字符串函数. 答案: void fun(char*a,char *p) {int i=0; char *p=a; while(q<=p) {if(*q!='*') {a=*q; i++;} q++;} while(*q) {a=*q; i++; q++;} a='\0';}57: 第 57 题学生的记录是由学号和成绩组成,n 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把指定分数范围内的学生数据放在 b 所指的数组中,分数范围内的学生人数由函数值返回. 答案: int fun(strec*a,strec *b,int l,int h) {int i,j=0; for(i=0;i<n;i++) if(a.s>=l&a.s<=h) {b[j]=a; j++;} return j;}58: 第 58 题编写函数藏服那,它的功能是:求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和的平方根 s,并作为函数值返回. 答案: double fun(int n) {double s=0.0; int i; for(i=1;i<n;i++) if(i%3==0&i%7==0) s=s+i; s=sqrt(s); return s;}59: 第 59 题请别写函数 fun,该函数的功能是:将放在字符串数组中的 m 个字符串(每串的长度不超过 n),按顺序合并组成一个新的字符串. 答案: void fun(char a[m][n],char *b) {int i,j,k=0; for(i=0;i<m;i++) {for(j=0;j<n;j++) if(*(*(a+i)+j)) {b[k]=*(*(a+i)+j) k++;} else break; b[k]='\0';}}60: 第 60 题请编写函数 fun, 该函数的功能是: 删去一维数组中所有相同的数, 使之只剩一个.数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数. 答案: int fun(int a[],int n) {int i,t,j=0,*p=a; t=p[0]; for(i=0;i<=n;i++) if(t==p) ; else {a[j]=t; t=p; j++;} if(i>=n) a[j]=t; return j;}61: 第 61 题第请编写函数 fun,该函数的功能使:统计各年龄段的人数.N 个年龄通过调用随机函数获得,并放在主函数的 age 数组中;要求函数把 0 至 9 岁年龄段的人数放在d[0]中,把 10 至 19 岁年龄段的人数放在 d[1]中,把 20 至 29 岁的人数放在 d[2]中,其余以此类推,把 100 岁(含 100 以上年龄的人数都放在 d[10]中.结果在主函数中输出.答案: void fun(int *a,int *b) {int i,j; for(j=0;i<m;j++) b[j]=0; for(i=0;i<n;i++) if(a>=0&a<=9) b[0]+=1; else if(a>=10&a<=19) b[1]+=1; else if(a>=20&a<=29) b[2]+=1; else if(a>=30&a<=39) b[3]+=1; else if(a>=40&a<=49) b[4]+=1; else if(a>=50&a<=59) b[5]+=1; else if(a>=60&a<=69) b[6]+=1; else if(a>=70&a<=79) b[7]+=1; else if(a>=80&a<=89) b[8]+=1; else if(a>=90&a<=99) b[9]+=1; else b[10]+=1;}62: 第 62 题请编写函数 fun, 该函数的功能是: 统一一含字符串中单词的个数, 作为函数值返回.一行字符串在主函数中输入,规定所有单词由小写字母组成, 单词之间由若干个空格格开,一行的开始没有空格. 答案: int fun (char *s) {int i,n=0; for(i=0;i<strlen(s);i++) {if(s='a'&s<='z'&s[i+1]=='' ‖s[i+1]=='\0') n++;} return n;}63: 第 63 题请编写一个函数 fun,它的功能是:计算并输出给定整数 n 的所有因子(不包括 1 与自身)之和.规定 n 的值不大于 1000. 答案: int fun(int n) {int s=0,i; for(i=2;i<=n-1;i++) if(n%i==0) s+=i; return s;}64: 第 64 题请编写函数 fun,其功能是:将 s 所指字符串中 ascii 值为奇数的字符删除,串中剩余字符形成一个新串放在 t 所指的数组中. 答案: void fun(char *s,char t[]) {int i,j=0,n; n=strlen(s); for(i=0;i<n;i++) if(s%2==0) {t[j]=s; j++;} t[j]='\0';} 65:第 65 题请编写函数 fun,其功能是:将两位数的正整数 a,b 合并成一个整数放在 c 中.合并的方式是:将 a 数的十位和个位数依次放在 c 数的百位和个位上,b 数的十位和个位数依次放在 c 数的十位和千位上. 答案: void fun(int a,int b,long *c) {*c=(b%10)*1000+(a/10)*100+(b/10)*10+a%10;}66: 第 66 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:删除字符串中所有*号.在编写函数时,不得使用 c 语言提供的字符串函数. 答案: void fun(char *a) {int i=0;char *p=a; while(*p) {if(*p!='*') {a=*p; i++;} p++;} a='\0';}67: 第 67 题学生的记录时由学号和成绩组成,n 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能时:函数返回指定学号的学生数据,指定的学号在主函数中输入.若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数时 strcmp). 答案: strec fun(strec*,char *b) {int i; strec h; for(i=0;i<n;i++) if(strcmp(a.num,b)==0) {h=a; break; } else {h.num==""; h.s=-1;} return h;} 68: 第68 题请编写函数fun,其功能时:计算并输出下列多项式的值: sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n! 答案: sn=1+1/1!+1/2!+1/3!+1/4!+...+1/n! double fun(int n) {double t,sn=1.0; int i,j; for(i=1;i<n;i++) {t=1.0; for(j=1;j<=i;j++) t*j; sn+=1.0/t;} return sn;}69: 第 69 题请编写一个函数 fun,它的功能时:求 fibonacci 数列中大于 t 的最小的一个数,结果由函数返回.其中fibonacci 数列f(n)的定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) 答案: f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2) int fun(int t) {int a=1,b=1,c=0,i; for(i=4;i<=t;i++) {if(c<t) {c=a+b; a=b; b=c;} else break;} return c;}70: 第 70 题编写函数 fun,它的功能时:计算并输出下列级数和: s=1/1*2+1/2*3+…+1/n(n+1) 答案: double fun (int n) {double s=0.0; int i; for(i=1;i<=n;i++) s=s+1.0/(i*(i+1)); return s;}71: 第 71 题请编写函数 fun,其功能时:将两个两位数的正整数 a,b 合并形成一个整数放在 c 中,合并的方式是:将 a 数的十位和个位数依次放在 c 数的十位和千位上,b 的十位和个位整数依次放在 c 数的百位和个位上. 答案: void fun(int a,int b,long *c) {*c=(a%10)*1000+(b/10)*100+(a/10)*10+b%10;}72: 第 72 题请编写函数 fun,其功能是:将 s 所指字符串中下标为偶数的字符删除,串中剩余字符形成新串放在 t 所指数组中. 答案: void fun(char *s,char t[]) {int i,j=0,n=strlen(s); for(i=0;i<n;i++) if(i%2!=0) {t[j]=s; j++;} t[j]='\0';}73: 第 73 题假定输入的字符串中只包含字母和*号,请编写函数 fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除.形参 h 已指向字符串第一个字符,形参 p 已指向字符串中最后一个字母.在编写程序时,不得使用 c 语言提供的字符串函数. 答案: void fun(char *a,char *h,char *p) {int i=0; char *q=a; while(q<h) {a=*q; q++; i++;} while(q<p) {if(*q!=''*) {a=*q; i++;} q++;} while(*q) {a=*q; i++; q++;} a='\0';}74: 第 74 题学生的记录由学号和成绩组成 n 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能时:把分数最低的学生数据放在 h 所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数. 答案: int fun(strec *a,strec *b) {int i,j=0,n=0,min; min=a[0].s; for(i=0;i<n;i++) if(a.s<min) min=a.s; for(i=0;i<n;i++) if(a.s==min) {*(b+j)=a; j++; n++;} return n;}75: 第 75 题请编写函数 fun ,该函数的功能:将 m 行 n 列的二维数组中的数据,按列的顺学依次放到一维数组中. 答案: void fun(int (*s)[]10,int *b,int *n,int mm,int nn) {int i,j; for(j=0;j<nn;j++) for(i=0;i<mm;i++) {b[*n]=*(*(s+i)+j); *n=*n+1;}} 76: 第76 题请编写函数 fun,其功能时:计算并输出当 x<0.97 时下列多项式的值,直到|sn-s(n-1)|<0.000001 为止. Sn=1+0.5x+0.5(0.5-1)/2!x(2)+…+0.5(0.5-1)(0.5-2)…..(0.5-n+1)/n!x(n) 答案:.double fun(double x) {double s1=1.0,p=1.0,sum=0.0,s0,t=1.0; int n=1; do {s0=s1; sum+=s0; t*=n; p*=(0.5-n+1)*x; s1=p/t; n++;}while(fabs(s1-s0)>1e-6); return sum;}77: 第 77 题请编写一个函数 fun,其功能是:将两个两位数的正整数 ab 合并形成一个整数放在 c 中.合并方式是:将 a 数的十位和个位数依次放在 c 数的个位和百位上,b 数的十位和个位数依次放在 c 数的十位和千位上. 答案: void fun(int a,int b,long *c) {*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;}78: 第 78 题请编写函数 fun,其功能是:将 s 所指字符串中 ascii 值为偶数的字符删除,串中剩余字符形成一个新串放在 t 所指的数组中. 答案: void fun(char *s,char t[]) {int i,j=0,n=strlen(s); for(i=0;i<n;i++) if (s%2!=0) {t[j]=s; j++;} t[j]='\0';} 79: 第79 题已知学生的记录由学号和学习成绩构成,n 名学生的数据已存入 a 结构体数组中.请编写函数 fun,该函数的功能是:找出成绩最低的学生记录, 通过形参返回主函数(规定只有一个最低分). 答案: void fun(stu a[],stu *s) {int i,min; min=a[0].s; for(i=0;i<n;i++) if(a.s<min) {min=a.s; *s=a;}}80: 第 80 题程序定义了 n×n 的二维数组,并在主函数中自动赋值.请编写函数 fun,该函数的功能是:使数组左下半三角元素中的值乘以 n. 答案: fun(int a[][n],int n) {int i,j; for(i=0;i<n;i++) for(j=0;j<=i;j++) a[j]=a[j]*n;}81: 第 81 题请编写函数 fun,其功能使:将两个两位正整数 a b 合并形成一个整数放在c 中.合并的方式使:将 a 数的十位和个位数依次放在 c 数的百位和个位上,b 数的十位和个位数依次放在 c 数的千位和十位上. 答案: void fun(int a,int b,long *c) {*c=(b/10)*1000+(a/10)*100+(b%10)*10+a%10;}82: 第 82 题请编写一个函数 fun,它的功能使:计算 n 门课程的平均分,计算结果作为函数值返回. 答案: float fun(float *a,int n) {float ave=0.0; int i; for(i=0;i<n;i++) ave+=a; ave/=n; return ave;}83: 第 83 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能使:将字符串尾部的*号全部删除,前面和中间的*号不删除. 答案: void fun(char *a) {int i=0; char *p,*q; p=q=a; while(*p) p++; p--; while(*p=='*') p--; while(q<=p) {a=*q; i++; q++;} a='\0';}84: 第 84 题请编写函数 fun,其功能是:将两个两位数的正整数 a b 合并形成一个整数放在 c 中,合并的方式是:将 a 数的十位和个位数依次放在 c 的个位和百位上,b 数的十位和个位数依次放在 c 数的千位和十位上. 答案: void fun(int a,int b,long *c) {c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;}85: 第 85 题 n 名学生的成绩已在主函数中放入一个带头节点的链表结构中,h 指向链表的头节点.请编写函数 fun,它的功能是:求出平均分,由函数值返回. 答案: double fun(strec *h) {double aver=0.0; while(h!=null) {aver+=h->s; hy=h->next;} aver/=n; return aver;}86: 第 86 题请编写函数 fun,计算并输出给定 10 个数的方差. 答案: double fun(double x[10]) {int i,j; double s=0.0,s1=0.0; for(i=0;i<10;i++) s1+=x; s1/=10; for(j=0;j<10;j++) s+=(x[j]-s1)*(x[j]-s1); s/=10; s=pow(s,0.5); return s;}87: 第 87 题请编写函数 fun,其功能是:将两个两位数的正整数 a b 合并形成一个整数放在 c 中.合并的方式是:将 a 数的十位和个位数依次放在 c 数的千位和十位上,b 数的十位和个位数依次放在 c 数的个位和百位上. 答案: void fun(int a,int b,long *c) {*c=(a/10)*1000+(a%10)*10+(b%10)*100+b/10;}88: 第 88 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除.在编写函数亚时, 不得使用 c 语言提供的字符串函数. 答案: void fun(char *a) {int i=0; char *p=a; while(*p&&*p=='*') {a=*p; i++; p++;} while(*p) {if(*p!='*') {a=*p; i++;} p++;} a='\0';}89: 第 89 题学生的记录是由学号和成绩组成,n 名学生的数据已在主函数中放入结构体数组 s 中,请编写函数 fun,它的功能是:把高于等于平均分的学生数据放在 b 所指的数组中,高于等于平均分的学生人数通过形参 n 传回,平均分通过函数值返回. 答案: double fun(strec *a,strec *b,int *n) {double aver=0.0; int i,j=0; for(i=0;i<n;i++) aver+=a.s; aver/=n; for(i=0;i<n;i++) if(a.s)>=aver} {*(b+j)=a; j++;} *n=j; return aver;}90: 第 90 题请编写函数 fun , 其功能是 : 计算并输出下列多项式值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n). 答案: sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n). double fun(int n) {int i; double sn=0.0; for(i=1;i<=n;i++) sn+=(1.0/(2*i-1)-1.0/(2*i)); return sn;}91: 第 91 题请编写函数 fun,其功能是:将两个两位数的正整数 a b 合并形成一个整数放在 c 中.合并的方式是:将 a 数的十位和个位数依次放在 c 的十位和千位上,b 数的十位和个位数依次放在 c 数的个位和百位上. 答案: void fun(int a, int b, long *c) { *c=(a%10)*1000+(b%10)*100+(a/10)*10+b/10; }92: 第 92 题请编写函数 fun , 它的功能是计算 : s=(ln(1)+ln(2)+ln(3)+…+ln(m))(0.5),s 作为函数值返回. 答案: double fun(int m) { int I; double s=0.0, log(double x); for(i=1;i<=m;i++) s=s+log(i); s=sqrt(s); return s; }93: 第 93 题请编写函数 fun, 它的功能是计算下列级数和, 和值由函数值返回. S=1+x+x(2)/2!+x(3)/3!+…x(n)/n! 答案: double fun(double x, int n) { double s=1.0, p=1.0; int I,j,t; for(i=1;i<=n;i++) { t=1; for(j=1;j<=i;j++) t=t*j; p=p*x; s=s+p/t; } return s; }94: 第 94 题规定输入字符串中只包含字母和*号.请编写函数 fun,它的功能是:将函数字符串中的前导*号全部删除,中间和尾部的*号不删除. 答案: void fun(char *a) { int i=0; char *p=a; while(*p&&*p=='*') p++; while(*p) { a[i]=*p; i++; p++; } a[i]='\0'; } 95:第 95 题假定输入的字符串中只包含字母和*号.请编写函数 fun,它的功能是:使字符串的前导*号不得多于 n 个;若多于 n 个,则删除多于的*号;若少于或等于 n 个,则什么也不做.字符串中间和尾部的*号不删除. 答案: void fun(char *a, int n) { int i=0,k=0; char *t=a; while(*t=='*') { k++; t++; } t=a; if(k>n) t=a+k-n; while( *t) { a[i]=*t; i++; t++; } a[i]='\0'; }96: 第 96 题请编写函数 fun,其功能使:计算并输出给定数组(长度为 9)中每相邻两个元素之平均值的平方根之和. 答案: double fun(double x[9]) { double sum=0.0; int I,j=1; for(i=0;i<9;i++) if(j<=8) { sum+=sqrt((x[i]+x[i+1])/2.0); j++; } return sum; } 97:第97 题请编写函数fun,其功能是:计算并输出下列多项式值: s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3…+50) 答案: double fun(int n) { int I,j; double sum=0.0, t; for(i=1;i<=n;i++) { t=0.0; for(j=1;j<=I;j++) t+=j; sum+=1.0/t; } return sum; }98: 第 98 题请编写函数 fun,它的功能是:计算并输出 n(包括 n)以内能被 5 或 9 整除的所有自然数的倒数之和. 答案: double fun(int n) { int I; double sum=0.0; for(i=1;i<=n;i++) if(i%5==0 || i%9==0) sum+=1.0/I; return sum; }99: 第 99 题请编写函数 fun ,其功能是:计算并输出 3 到 n 之间所有素数的平方根之和. 答案: double fun(int n) { int m,k,I; double s=0.0; for(m=3;m<=n;m++) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0) break; if(i>=k+1) s+=sqrt(m); } return s; }100: 第100 题请编写函数fun , 其功能是: 计算并输出s=1+(1+2(0.5))+(1+2(0.5)+3(0.5))+…+(1+2(0.5)+3(0.5)+…+n(0.5)) 答案: double fun(int n) { int I; double =1.0,p=1.0; for(i=2;i<=n;i++) { p+=pow(I,0.5); s+=p; } return s; }。
专升本C语言题及答案
专升本C语言题及答案C语言精编100题一、单选题 1. 由C语言编写的代码程序( ) A.可直接执行 B. 是一个源程序 C. 经过编译即可执行D. 经过编译解释才能执行 2. 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( ) A. 大写字母 B. 中划线C. 数字字符D. 下划线 3. 下列选项中,不能用作标识符的是( ) A. _1234_ B. _1_2 C. int_2_ D. 2_int_ 4. 以下选项中合法的用户标识符是( ) A. long B. _2Test C.3Dmax D. A.dat 5. 以下不能定义为用户标识符的是( ) A.Main B. _0 C. _int D. sizeof 6. 下列定义变量的语句错误的是( ) A. int _int; B. double int_; C. char For; D.float US$; 7. 在C语言中,合法的实型常数是( ) A. 5E2.0 B.E-3 C. 2E0 D. 1.3E 8. 在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E15 9. 以下选项中,不能作为合法常量的是( ) A. 1.234e04 B. 1.234e0.4 C.1.234e+4 D. 1.234e0 10. 以下不合法的数值常量是( ) A. 011B. le1C. 8.0E0.5D. 0xabcd 11. 在C语言中,非法的字符常量是( ) A.‘\t’ B.‘\17’ C. “\n“ D.‘\xaa’ 12. 以下不合法的字符常量是( ) A.‘\018’ B.‘\“’ C.‘\\’ D.‘\xcc’ 13. 下列运算符中优先级最高的运算符是( )( ) A. = B. = C. % D.A. ==B. /C. =D. = 14. 以下程序的输出结果是( )main() { int a=3,b=4; printf(“%d\n“,a=b); } A. 3 B.4 C. 1 D. 0 15. 在C语言中,以下非法的表达式是( ) A.0=x=100 B. i=j==0 C. (char)(65+3) D. x+1=x+1 16. 在C语言中,以下非法的赋值语句是( ) A. j++; B. ++(i+1); C.x=j0; D. k=i==j; 17. 表达式3.6-5/2+1.2+5%2的值是( ) A.4.3 B. 4.8 C. 3.3 D. 3.8 18. 设有语句:inta=3;则执行了语句a+=a-=a*a;变量a的值是( ) A. 3 B. 0 C. 9 D. -12 19. 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( ) A. 10 B. 20 C. 40 D. 30 20.以下程序的输出结果是( )( )( )( )( ) ⑴ main() { inti=10,j=1; printf(“%d,%d\n“,i--,++j);} A. 9,2 B. 10,2C. 9,1D. 10,1 ⑵ main() { int a=12,b=12; printf(“%d %d\n“ ,--a,++b);} A. 10 10 B. 12 12 C. 11 10 D.11 13 ⑶ main() { int x=023; printf(“%d\n“,--x);} A. 17 B.18 C. 23 D. 24 ⑷ main() { int x=10,y=10;printf(“%d %d\n“,x--,--y);} A. 10 10 B. 9 9 C. 910 D. 10 9 ⑸ main() { int i=010,j=10; printf(“%d,%d\n“,++i,j--);} A. 11,10 B. 9,10 C. 010,9 D.10,9 21. 以下程序的输出结果是( ) main() { int x=100,y=200;printf(“%d\n“,(x,y)); } A. 200 B. 100 C. 100 200 D)200 100 22. 以下程序的输出结果是( ) main() { intx=10,y=3,z; printf(“%d\n“,z=(x%y,x/y));} A. 1 B. 0C. 4D. 3 23. int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ) A. k++ B. k+=1 C. ++k D. k+1 24. 以下程序的输出结果是( ) main() { int x,y,z; x=y=1;z=x++,y++,++y; printf(“%d,%d,%d\n“,x,y,z); } A. 2,3,3 B.2,3,2 C. 2,3,1 D. 2,2,1 25. 设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( ) A. 1 B. 2 C.3 D.4 26. 设int x=-1;执行表达式++x||++x||++x||++x,x的值是( ) A. 0 B. 1 C. 2 D. 4 27. 以下程序的输出结果是(1) main(){ int k=11; printf(“k=%d,k=%o,k=%x\n“,k,k,k);}() A. k=11,k=12,k=11 B. k=11,k=13,k=13 C.k=11,k=013,k=0xb D. k=11,k=13,k=b (2) main(){ int k=17;printf(“%d,%o,%x\n“,k,k,k); }() A. 17,021,0x11 B.17,17,17 C. 17,0x11,021 D. 17,21,11 28. 运行时从键盘上输入9876543210CR(CR表示回车),则该程序的输出结果是()main() { int a;float b,c; scanf(“%2d%3f%4f\n“,a,b,c); printf(“a=%d,b=%f,c=%f\n“,a,b,c);} A.a=98,b=765,c=4321 B. a=10,b=432,c=8765 C.a=98,b=765.000000,c=4321.000000 D. a=98,b=765.0,c=4321.029. 设变量均已正确定义,若要通过scanf(“%d%c%d%c“,a1,c1,a2,c2);语句为变量 a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
C语言程序设计专升本精选样卷及答案
C语言程序设计专升本精选样卷(总分100分,考试时长90分钟)一、单项选择题(每小题2 分,共 40分)1、在c语言中,要求运算数必须是整型或字符型的运算符是________。
A、&&B、&C、!D、||【答案】B2、已有定义: int x=3,y=4,z=5;则表达式 !(x+y)+z-1&&y+z/2 的值是________。
A、0B、1C、2D、-1【答案】B3、if语句的基本形式为:if(表达式)语句,其中"表达式"________。
A、可以是任意合法的表达式B、必须是逻辑表达式C、必须是逻辑表达式或关系表达式D、必须是关系表达式【答案】A【解析】本题考查if表达式。
if(表达式)中的表达式可以为任何合法的表达式,一般情况下为逻辑、条件表达式,需要注意的是,当等号(==)误写为赋值号(=)时不会报错的,但是其值恒为1。
4、break语句的正确的用法是________。A、无论在任何情况下,都中断程序的执行,退出到系统下一层。B、在多重循环中,只能退出最靠近的那一层循环语句。C、跳出多重循环。D、只能修改控制变量。【答案】B5、下列程序的运行结果是________。
void fun(int*a,int*b) {int *k;k=a;a=b;b=k;}main(){int a=3,b=6,*x=&a,*y=&b;fun(x,y);printf("%d%d",a,b);}A、63B、36C、编译出错D、0 0【答案】B【解析】在C语言中,调用函数时是将实参复制一份给形参,所以无论怎么改变形参的值,都不会影响到实参,即传值调用。
即使形参是指针变量,也没有改变C语言传值调用这个事实,实参指针也还是复制了一份给形参指针,无论怎么改变形参指针的内容(注意:不是形参指针所指向的内容),也不会影响实参指针的内容。
往年专升本c语言试题及答案
往年专升本c语言试题及答案一、单项选择题1. C语言中,用于定义一个结构体类型的关键字是:A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项不是C语言中合法的变量名?A. _123B. intC. sumD. $amount答案:B3. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D4. 在C语言中,一个整数除以一个浮点数的结果是:A. 整数B. 浮点数C. 字符串D. 错误答案:B5. 下列哪个选项是C语言中的逻辑运算符?A. %B. &&C. &&D. ==答案:B二、填空题1. C语言中,用于定义一个整型变量的关键字是________。
答案:int2. 一个C语言程序的执行从________函数开始。
答案:main3. 在C语言中,________运算符用于计算两个整数的和。
答案:+4. 用于定义一个字符型变量的关键字是________。
答案:char5. C语言中,________运算符用于判断两个表达式是否相等。
答案:==三、编程题1. 编写一个C语言程序,计算并输出100以内所有偶数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("The sum of even numbers within 100 is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,然后输出其逆序字符串。
```c#include <stdio.h>#include <string.h>int main() {char str[100];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");return 0;}```四、简答题1. 请简述C语言中数组和指针的关系。
专升本考试《C语言程序设计》试卷
专升本考试《C语言程序设计》试卷一、选择题1.C语言中,sizeof运算符返回的是什么类型的值?A. intB. floatC. doubleD. size_t正确答案:D. size_t解析:sizeof运算符返回的是size_t类型的值,用于表示内存中对象的大小。
2.下列哪个选项是C语言的关键字?A. declareB. assignC. typedefD. define正确答案:C. typedef解析:typedef是C语言的关键字,用于定义自定义类型。
3.在C语言中,scanf函数的返回值是什么?A. 读取到的字符的个数B. 读取到的整数C. 读取到的字符串D. 读取失败的标志正确答案:A. 读取到的字符的个数解析:scanf函数返回成功读取到的字符的个数。
4.下面哪个选项是C语言中的逻辑与运算符?A. &&B. ||C. !D. &正确答案:A. &&解析:C语言中,逻辑与运算符用&&表示。
5.在C语言中,以下哪个选项是正确的注释符号?A. //B. ||C. ##D. //正确答案:A. //解析:在C语言中,//用于表示单行注释。
二、填空题1.标准库函数strlen用于计算给定字符串的长度。
2.for循环的语法结构为:for (初始表达式; 条件表达式; 增量表达式) {循环体}3.C语言中,用于输出到标准输出设备的关键字是printf。
4.在C语言中,用于定义常量的关键字是const。
5.scanf函数中,格式化控制符%d用于读取整数。
三、编程题1.编写一个C程序,实现输入两个整数,输出它们的和。
```c #include <stdio.h>int main() { int a, b; printf(。
C语言专升本样卷及答案
C语言专升本样卷(总分100分,考试时长90分钟)一、单项选择题(每小题2 分,共 40分)1、以下叙述中正确的是________。
A、预处理命令行必须位于c源程序的起始位置B、在c语言中,预处理命令行都以“#”开头C、每个c程序必须在开头包含预处理命令行:#includeD、C语言的预处理不能实现宏定义和条件编译的功能2、在c语言程序中可用做用户标识符的是________。
A、voidB、aa123 _abcBBN casC、as+b3D、6f—123 DoIf SIG3、设a=3,b=2,则表达式a^b>>2的值的二进制表示为________。
A、00000011B、00000110C、00000100D、104、以下程序的输出结果是________。
#include<stdio.h>main(){int a=1,b=3;if((++a<0)&&!(b--<=0)) printf("%d,%d\n",a,b);else printf("%d,%d\n",b,a);}A、2,2B、1,3C、3,2D、3,15、以下说法中不正确是________。
A、使用while循环时,循环变量初始化的操作应在循环语句之前完成B、while循环是先判断表达式,后执行循环体语句C、do-while和for循环均是先执行循环体语句,后判断表达式D、for,while和for-while循环中的循环体均可以由空语句构成6、putchar ( )函数可以向终端输出一个 ( ) 。A、整型变量表达式值B、实型变量值C、字符串D、字符或字符型变量值7、以下不合法的数值常量是________。
A、011B、1e1C、8.0E0.5D、0xabcd8、以下关于数组的描述正确的是______。
A、数组的大小是固定的,但可以有不同的类型的数组元素。
B、数组的大小是可变的,但所有数组元素的类型必须相同。
专升本c语言试题及答案
专升本c语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述,不正确的是()。
A. C语言是一种高级语言B. C语言可以直接在计算机上运行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. C语言中,以下数据类型不是基本数据类型的是()。
A. intB. floatC. charD. struct答案:D3. 下列选项中,哪个是C语言中的合法标识符()。
A. 2bB. intC. _varD. float答案:C4. 在C语言中,以下哪个选项不是运算符()。
A. %B. &&C. :D. =答案:C5. C语言中,用于定义数组的关键字是()。
A. structB. unionC. enumD. array答案:D6. 在C语言中,以下哪个函数用于将字符串复制到另一个字符串()。
A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B7. 下列关于C语言函数的描述,正确的是()。
A. 函数必须有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数的返回值类型必须与参数类型一致答案:C8. 在C语言中,以下哪个选项是正确的文件操作函数()。
A. fopen()B. fclose()C. fgetc()D. All of the above答案:D9. 下列关于C语言指针的描述,不正确的是()。
A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针可以存储函数的地址答案:D10. 在C语言中,以下哪个选项是正确的字符串定义方式()。
A. char str[] = "Hello";B. char str[] = {'H', 'e', 'l', 'l', 'o'};C. char str[] = "Hello", "World";D. All of the above答案:D二、填空题(每题2分,共20分)1. 在C语言中,表示逻辑与的运算符是____。
专转本c语言历年考试题及答案
专转本c语言历年考试题及答案一、选择题1. 在C语言中,下列哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列哪个选项是正确的C语言变量声明?A. int a;B. int 2b;C. int a =;D. int a = 0.0;答案:A3. 在C语言中,下列哪个函数用于计算两个整数的和?A. printf()B. scanf()C. strcat()D. strcat()答案:A二、填空题1. 在C语言中,一个整型变量占用的内存空间通常是______个字节。
答案:42. 若有定义 `int a = 10;`,则表达式 `a++` 的值是______。
答案:113. 在C语言中,用于定义一个指针的关键字是______。
答案:int*三、简答题1. 请简述C语言中数组和指针的关系。
答案:在C语言中,数组名可以被用作指向数组第一个元素的指针。
数组的每个元素可以通过指针访问,指针可以递增或递减来遍历数组。
2. 解释C语言中的递归函数是如何工作的。
答案:递归函数是一种调用自身的函数。
它必须有一个终止条件,否则会无限递归下去。
递归函数通过将问题分解成更小的子问题来解决问题,每个子问题都是原始问题的简化版本。
四、编程题1. 编写一个C语言程序,计算并输出1到100之间所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers between 1 and 100is: %d\n", sum);return 0;} ```。
最新c语言程序设计专升本考试题库大全
最新c语言程序设计专升本考试题库大全c语言程序设计专升本考试题库篇一1).若变量已正确定义并赋值,以下符合c语言语法的表达式是a.a:=b+1b.a=b=c+218.5%3d.a=a+7=c+b正确答案:b答案解析:选项a中包含一个不合法的运算符":=";选项c应改为(int)18.5%3;选项d可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为c语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。
因此,正确答案是选项b,它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。
2).结构化程序设计的基本原则不包括()a.多元性b.自顶向下c.模块化d.逐步求精正确答案:a答案解析:结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用goto语句,其中不包括多态性。
3).下面选项中关于位运算的叙述正确的是()a.位运算符都需要两个操作数b.左移运算的结果总是原操作数据2倍c.右移运算时,高位总是补0d.位运算的对象只能是整型或字符型数据正确答案:d答案解析:位运算则是以位(bit)一级进行的运算,位运算符中除″~″以外,均为二元运算符,即要求两侧各有一个运算量,运算量只能是整型或字符型的数据,不能为实型数据。
其中右移时,右端(低位)移出的二进制数舍弃,左端(高位)移入的二进制数分两种情况:对于无符号整数和正整数,高位补0;对于负整数,高位补1、而左移运算在没有溢出的前提下每移动一位,相当于原数据的2倍。
4). 定义无符号整数类为uint,下面可以作为类uint实例化值的是( )a.-369b.369c.0.369d.整数集合{1,2,3,4,5}正确答案:b答案解析:uint表示的是无符号整数类,所以它的每个实例都是一个无符号整数,所以排除选项a和选项c,选项d是整数集合,所以也排除。
5).下列关于类、对象、属性和方法的叙述中,错误的是()。
往年专升本c语言试题及答案
往年专升本c语言试题及答案一、选择题(每题2分,共20分)1. C语言中,用于定义变量的关键字是:A. defineB. varC. letD. int答案:D2. 下列哪个是合法的C语言常量?A. 1.2EB. .5e2C. 0xGHID. 1e.2答案:B3. 在C语言中,哪个运算符用于计算两个数的乘积?A. *B. /C. +D. -答案:A4. 以下哪个是C语言中的合法标识符?A. 2variableB. variable2C. variable#2D. variable$2答案:B5. C语言中,哪个关键字用于声明一个函数?A. functionB. methodC. procedureD. void答案:D6. 在C语言中,哪个语句用于结束一个循环?A. continueB. breakC. exitD. return答案:B7. 下列哪个是C语言中数组的正确声明方式?A. int array[]B. int [10] arrayC. int array[10]D. int 10 array答案:C8. 以下哪个是C语言中的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello" + "World"D. "Hello", "World"答案:A9. 在C语言中,哪个函数用于计算两个数的和?A. sum()B. add()C. plus()D. None of the above答案:D10. C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. classD. type答案:A二、填空题(每题2分,共20分)1. 在C语言中,一个基本的数据类型是________。
答案:int2. 一个C语言程序的执行是从________函数开始的。
C语言基础练习100题(含答案)
如对你有帮助,请购买下载打赏,谢谢!C语言基础练习100题(含答案)雷柳青编排1、下面程序的输出是________#include<stdio.h>void main(){ int k=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A) k=11,k=12,k=11 B) k=11,k=13,k=13C) k=11,k=013,k=0xb D) k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是________.A) ++t; B) n1=(n2=(n3=0));C) k=i=j; D) a=b+c=1;3、下面合法的C语言字符常量是__________.A) '\t' B) "A" C) 65 D) A4、字符(char)型数据在微机内存中的存储形式是____.A) 反码B) 补码C) EBCDIC码D) ASCII码5、设int a=12,则执行完语句a+=a-=a*a后,a的值是________A) 552 B) 264 C) 144 D) -2646、执行下面程序中的输出语句后,输出结果是______.#include<stdio.h>void main(){int a;printf("%d\n",(a=3*5,a*4,a+5));}A) 65 B) 20 C) 15 D) 107、下面程序的输出是__________.#include<stdio.h>void main(){int x=023;printf("%d\n",--x);}A) 17 B) 18 C) 23 D) 248、下面程序的输出是___________.#include<stdio.h>void main(){char ch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A) 67,D B) B,C C) C,D D) 不确定的值9、以下程序的输出结果是________.#include<stdio.h>void main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A) 10 10 B) 9 9 C) 9 10 D) 10 910、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是_______.A) 200 B) 100C) 100 200 D) 输出格式符不够,输出不确定的值11、阅读下面的程序#include<stdio.h>void main(){int i,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是________.A) 1,19 B) -1,19 C) 1,17 D) -1,1712、阅读下面的程序#include<stdio.h>void main(){int i,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是_________.A) 8,10,8,10 B) 9,11,8,10C) 9,11,9,10 D) 9,10,9,1113、若已定义int a,则表达式a=10,a+10,a++的值是___.A) 20 B) 10 C) 21 D) 1114、阅读下面的程序#include<stdio.h>void main(){int i,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是________.如对你有帮助,请购买下载打赏,谢谢!A) i=123,j=4567 B) i=1234,j=567C) i=1,j=2 D) i=123,j=4515、下面程序的输出结果是________.#include<stdio.h>void main(){int a=-1, b=4, k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A) 1,1,2 B) 1,0,3 C) 0,1,2 D) 0,0,316、下面程序的输出结果是_______.#include<stdio.h>void main(){int a=5,b=3;float x=3.14, y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A) 1,0 B) 0,1 C) 1,1 D) 0,017、若有以下定义和语句:int a=010, b=0x10, c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是_________.A) 10,10,10 B) 8,16,10 C) 8,10,10 D) 8,8,1018、已知有double型变量x=2.5,y=4.7,整型变量a=7, 则表达式x+a%3*(int)(x+y)%2/4 的值是_________.A) 2.4 B) 2.5 C) 2.75 D) 019、设有以下语句:int x=10;x+=3+x%3,则x的值是._________A) 14 B) 15 C) 11 D) 1220、若d为double型变量,则表达式d=1,d+5,d++的值是_______.A) 1 B) 6.0 C) 2.0 D) 1.021、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值__________.A) 0 B) 1 C) 12 D) 622、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是____.A) 0 B) 2 C) 1.5 D) 123、在C语言中,以下叙述不正确的是________.A) 在C程序中,无论是整数还是实数,都能被准确无误的表示B) 在C程序中,变量名代表存储器中的一个位置C) 静态变量的生存期与整个程序的生存期相同D) C语言中变量必须先定义后引用24、设a为整型变量,不能正确表达数学关系10<a<15的C语言表达式是________. A) 10<a<15 B) a==11||a==12||a==13||a==14C) a>10&&a<15 D) !(a<=10)&&!(a>=15)25、如果c为字符型变量,判断c是否为空格不能使用________.(假设已知空格ASCII码为32)A) if(c=='32') B) if(c==32)C) if(c=='\40') D) if(c==' ')26、执行下面程序时,若从键盘输入"2<CR>",则程序的运行结果是________.#include <stdio.h>void main( ){ int k; char cp;cp=getchar( );if (cp>='0' && cp<='9')k=cp-'0';else if (cp>='a' && cp<='f')k=cp-'a'+10;else k=cp-'A'+10;printf("%d\n",k);}A) 2 B) 4 C) 1 D) 1027、执行下面程序后,运行结果是________.#include <stdio.h>void main( ){ int x=41,y=1;if (x%3==0 && x%7==0){ y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A) y=41 B) y=43 C) y=42 D) y=128、运行下面程序时,从键盘输入"12,34,9<CR>",则输出结果是______.#include <stdio.h>void main( ){ int x,y,z;scanf("%d,%d,%d",&x,&y,&z);if (x<y)if (y<z)printf("%d\n",z);else printf("%d\n",y);else if (x<z)printf("%d\n",z);else printf("%d\n",x);}A) 34 B) 12 C) 9 D) 不确定的值29、运行下面程序时,从键盘输入字母H,则输出结果是________.#include <stdio.h>void main( ){ char ch;如对你有帮助,请购买下载打赏,谢谢!ch=getchar( );switch(ch){ case 'H':printf("Hello!\n");case 'G':printf("Good morning!\n");default:printf("Bye_Bye!\n");}}A) Hello! B) Hello!Good Morning!C) Hello! D) Hello!Good morning! Bye_Bye!Bye_Bye!30、执行下列程序段后的输出结果是_________.int x=1,y=1,z=1;x+=y+=z;printf("%d\n",x<y?y:x);A) 3 B) 2 C) 1 D) 431、设ch是char型变量,值为'A',则表达式ch=(ch>='A' && ch<='Z')?ch+32:ch的值是_____.A) Z B) a C) z D) A32、下面程序的输出结果是________.#include <stdio.h>void main( ){ int x=8,y=-7,z=9;if (x<y)if (y<0) z=0;else z-=1;printf("%d\n",z);}A) 8 B) 1 C) 9 D) 033、运行下面程序时,若从键盘输入"3,4 <CR>",则程序的输出结果是_______.#include <stdio.h>void main( ){ int a,b,s;scanf("%d,%d",&a,&b);s=a;if (s<b) s=b;s=s*s;printf("%d\n",s) ;}A) 14 B) 16 C) 18 D) 2034、下列程序的执行结果是_________.#include <stdio.h>void main( ){ int x=0,y=1,z=0;if (x=z=y)x=3;printf("%d,%d\n",x,z);}A) 3,0 B) 0,0 C) 0,1 D) 3,135、能够完成如下函数计算的程序段是______.┌-1 x<0y= ┤0 x=0└ 1 x>0A) y=1; B) if (x>=0)if(x!=0) if(x>0) y=1;if(x>0) y=1; else y=0;else y=0; else y=-1;C) y=0; D) y=-1;if (x>=0) if (x>0) y=1;if (x>0) y=1; else y=0;else y=-1;36、以下程序的执行结果是________.#include <stdio.h>void main( ){ int x=1,y=0;switch (x){case 1:switch (y){case 0:printf("first\n");break;case 1:printf("second\n");break;}case 2:printf("third\n");}}A) first B) firstsecond thirdC) first D) secondthird37、以下程序的执行结果是________.#include <stdio.h>void main( ){ int a,b,c,d,x;a=c=0;b=1;d=20;if (a) d=d-10;else if(!b)if (!c) x=15;else x=25;printf("d=%d\n",d);}A) d=20 B) d=10 C) d=15 D) 25如对你有帮助,请购买下载打赏,谢谢!38、下列程序执行后的输出结果是________.#include <stdio.h>void main( ){ int x,y=1,z;if ((z=y)<0) x=4;else if (y==0) x=5;else x=6;printf("%d,%d\n",x,y);}A) 4,1 B) 6,1 C) 5,0 D) 出错信息39、有如下程序#include <stdio.h>void 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=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=240、下面程序的输出结果是_________.#include <stdio.h>void main( ){ int a=-1,b=1,k;if ((++a<0) && (b--<=0))printf("%d %d\n",a,b);elseprintf("%d %d\n",b,a);}A) -1 1 B) 0 1 C) 1 0 D) 0 041、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w<x)?w:x; m=(m<y)?m:y; m=(m<z)?m:z;则该程序段执行后,m的值是_________.A) 4 B) 3 C) 2 D) 142、以下程序的输出结果是_________.main( ){ int a=100;if (a>100) printf("%d\n",a>100);else printf("%d\n",a<=100);}A) a<=100 B) 100 C) 0 D) 143、若执行下面的程序从键盘上输入9,则输出结果是.______________#include <stdio.h>void main( ){int n;scanf("%d",&n);if (n++<10) printf("%d\n",n);else printf("%d\n",n--);}A) 11 B) 10 C) 9 D) 844、以下程序段运行结果是________.int x=1,y=1,z=-1;x+=y+=z;printf("%d\n",x<y?y:x);A) 1 B) 2 C) 4 D) 不确定的值45、有以下程序#include <stdio.h>void main( ){ int a,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是________.A) 2,1 B) 3,2 C) 4,3 D) 2,-146、运行下面程序时,若从键盘输入数据为"123",则输出结果是_______.#include "stdio.h"void main(){ int num,i,j,k,place;scanf("%d",&num);if (num>99)place=3;else if(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch (place){ case 3: printf("%d%d%d\n",k,j,i);break;case 2: printf("%d%d\n",k,j);break;case 1: printf("%d\n",k);}}A) 123 B) 1,2,3 C) 321 D) 3,2,147、执行下列程序后的输出结果是_______.如对你有帮助,请购买下载打赏,谢谢!#include <stdio.h>void main( ){ int k=4,a=3,b=2,c=1;printf("%d\n",k<a?k:c<b?c:a);}A) 4 B) 3 C) 2 D) 148、以下条件表达式中能完全等价于条件表达式if(x)中的x 的是____.A) (x==0) B) (x!=0) C) (x==1) D) (x!=1)49、若运行下面程序时,给变量a输入15,则输出结果是______.#include <stdio.h>void main( ){ int a,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b) ;}A) 5 B) 25 C) 15 D) 1050、执行下面程序的输出结果是________.#include <stdio.h>void main( ){ int a=5,b=0,c=0;if (a=a+b) printf("****\n");else printf("####\n");}A) 有语法错误不能编译B) 能通过编译,但不能通过连接C) 输出****D) 输出####51、为了避免嵌套的if-else语句的二义性,C语言规定else总是与______组成配对关系.A) 缩排位置相同的ifB) 在其之前未配对的ifC) 在其之前尚未配对的最近的ifD) 同一行上的if52、以下程序段__________.x=-1;do{x=x*x;} while (!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误53、对下面程序段描述正确的是_______.int x=0,s=0;while (!x!=0) s+=++x;printf("%d",s); A) 运行程序段后输出0B) 运行程序段后输出1C) 程序段中的控制表达式是非法的D) 程序段循环无数次54、下面程序段的输出结果是_______.x=3;do { y=x--;if (!y) {printf("*");continue;}printf("#");} while(x=2);A) ## B) ##* C) 死循环D)输出错误信息55、下面程序的运行结果是_______.#include<stdio.h>void main( ){ int a=1,b=10;do{ b-=a;a++;} while(b--<0);printf("%d,%d\n",a,b);}A) 3,11 B) 2,8 C) 1,-1 D) 4,956、下面程序段的运行结果是__________.int n=0;while (n++<=2)printf("%d",n);A) 012 B) 123 C) 234 D) 错误信息57、下面程序段的运行结果是________.int x=0,y=0;while (x<15) y++,x+=++y;printf("%d,%d",y,x);A) 20,7 B) 6,12 C) 20,8 D)8,2058、下面程序的运行结果是________.#include<stdio.h>void main(){ int s=0,i=1;while (s<=10){ s=s+i*i;i++;}printf("%d",--i);}A) 4 B) 3 C) 5 D) 659、下面程序段的运行结果是________.for(x=10;x>3;x--){ if(x%3) x--;--x; --x;printf("%d ",x);}如对你有帮助,请购买下载打赏,谢谢!A) 6 3 B) 7 4 C) 6 2 D) 7 360、下面程序的运行结果是________.#include<stdio.h>void main( ){ int a,b;a=-1;b=0;do {++a;++a;b+=a;} while(a<9);printf("%d\n",b);}A) 34 B) 24 C) 26 D) 2561、下面程序段的运行结果是___________.for(i=1;i<=5;)printf("%d",i);i++;A) 12345 B) 1234 C) 15 D) 无限循环62、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int n=4;while (n--) printf("%d ",n--);}A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 063、以下程序运行后的输出结果是________.#include<stdio.h>void main(){ int i=10,j=0;do{ j=j+1; i--;}while(i>2);printf("%d\n",j);}A) 50 B) 52 C) 51 D) 864、有如下程序#include<stdio.h>void main(){ int x=23;do{ printf("%d",x--);}while(!x);}该程序的执行结果是_______A) 321 B) 23C) 不输出任何内容D) 陷入死循环65、以下程序段的执行结果是_______.int i,j,m=0;for(i=1;i<=15;i+=4)for(j=3;j<=19;j+=4)m++;printf("%d\n",m);A) 12 B) 15 C) 20 D) 2566、下面程序的输出结果是___________.#include<stdio.h>void main( ){ int i;for(i=1;i<6;i++){ if (i%2!=0) {printf("#");continue;}printf("*");}printf("\n");}A) #*#*# B) ##### C) ***** D) *#*#*67、下面程序的输出结果是__________.#include<stdio.h>void main( ){ int x=10,y=10,i;for(i=0;x>8;y=++i)printf("%d %d ",x--,y);}A) 10 1 9 2 B) 9 8 7 6C) 10 9 9 0 D) 10 10 9 168、执行以下程序后,输出的结果是__________.#include<stdio.h>void main( ){ int y=10;do {y--;}while (--y);printf("%d\n",y--);}A) -1 B) 1C) 8D) 069、有如下程序#include<stdio.h>void main( ){ int n=9;while(n>6) {n--;printf("%d",n);}}该程序段的输出结果是__________.A) 987 B) 876 C) 8765 D) 987670、有如下程序#include<stdio.h>void main( ){ int i,sum=0;如对你有帮助,请购买下载打赏,谢谢!for(i=1;i<=3;sum++) sum+=i;printf("%d\n",sum);}该程序的执行结果是___________.A) 6 B) 3 C) 死循环D) 071、以下循环体的执行次数是_______#include<stdio.h>void main( ){ int i,j;for(i=0,j=1; i<=j+1; i+=2, j--)printf("%d \n",i);}A) 3 B) 2 C) 1 D) 072、在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为________.#include <stdio.h>void main( ){ char ch;while ((ch=getchar( ))!='\n'){ if (ch>='A' && ch<='Z') ch=ch+32;else if (ch>='a' && ch<'z') ch=ch-32;printf("%c",ch);}printf("\n");}A) ABCdef B) abcDEF C) abc D) DEF73、下面程序的输出结果是__________.main( ){int i,k=0, a=0, b=0;for(i=1;i<=4;i++){k++;if (k%2==0) {a=a+k; continue;}b=b+k;a=a+k;}printf("k=%d a=%d b=%d\n",k,a,b);}A) k=5 a=10 b=4 B) k=3 a=6 b=4C) k=4 a=10 b=3 D) k=4 a=10 b=474、执行下面程序段后,k的值是_________.int i,j,k;for(i=0,j=10;i<j;i++,j--)k=i+j;A) 9 B) 11 C) 8 D) 1075、以下程序的功能是:从键盘上输入若干个学生的成绩, 统计并输出最高成绩和最低成绩,当输入负数时结束输入。
专升本c语言在线试题及答案
专升本c语言在线试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str = "Hello";D. char str[] = {"Hello"};答案:A3. 下列关于C语言函数的描述,错误的是?A. 函数可以没有返回值B. 函数可以有多个返回值C. 函数可以有默认参数D. 函数可以是递归的答案:C4. 在C语言中,以下哪个运算符用于取地址?A. *B. &C. %D. #答案:B5. 下列关于C语言数组的描述,正确的是?A. 数组可以是多维的B. 数组的大小在编译时确定C. 数组可以动态分配D. 数组的索引从1开始答案:B6. 在C语言中,以下哪个关键字用于定义一个枚举类型?A. enumB. unionC. structD. typedef答案:A7. 下列关于C语言指针的描述,错误的是?A. 指针可以指向任何类型的数据B. 指针可以被赋值为NULLC. 指针可以被赋值为0D. 指针不能被赋值为负数答案:D8. 在C语言中,以下哪个选项是正确的宏定义?A. #define PI 3.14B. #define PI = 3.14C. #define PI 3.14D. #define PI 3.14答案:A9. 下列关于C语言文件操作的描述,错误的是?A. 文件操作需要包含头文件stdio.hB. 文件指针是FILE类型的C. 文件操作函数需要以"fopen"开始D. 文件操作完成后需要调用"fclose"关闭文件答案:C10. 在C语言中,以下哪个关键字用于声明一个变量?A. intB. floatC. charD. all of the above答案:D二、填空题(每题2分,共10分)1. 在C语言中,使用________关键字可以定义一个函数。
山西专升本C语言真题及答案
山西专升本C语言真题及答案一、选择题1.下列标识符中,不符合C语言命名规范的是() A. _intnum B. num1 C. NUM_2 D. 123num答案:D解析:标识符由字母、数字和下划线组成,且不能以数字开头。
2.下面哪些是C语言的关键字? A. for B. var C. if D. new答案:A、C解析:for和if是C语言的关键字,而var和new 不是C语言关键字。
3.在C语言中,以下哪个标识符是合法的? A. 6num *****************%答案:B解析:只有标识符中含有字母、数字和下划线是合法的,不能包含其他特殊字符。
4.下列哪个不是C语言的数据类型? A. char B. stringC. intD. float答案:B解析:C语言中没有string类型,可以使用字符数组来表示字符串。
5.C语言中,以下哪个运算符优先级最高? A. = B. +=C. ++D. /答案:C解析:自增运算符(++)的优先级最高。
二、填空题1.C语言中,字符型变量所占用的字节数是\\\_。
答案:1解析:字符型变量用一个字节来存储。
2.C语言中,声明一个整型变量x并赋初值12,正确的语句是\\\_。
答案:int x = 12;解析:在声明变量时,可以同时为变量赋初值。
3.C语言中,下面哪个不是合法的标识符?答案:_num%解析:标识符只能由字母、数字和下划线组成,不能包含其他特殊字符。
4.C语言中,取变量地址的运算符是\\\_。
答案:&解析:取地址运算符用于获取变量在内存中的地址。
5.C语言中,以下代码的输出结果是\\\_。
```c int a = 5; printf(。
C语言基础练习100题含标准答案
C语言基础练习100题含标准答案1. 编写一个C语言程序,要求输出"Hello, World!"#include <stdio.h>int main() {printf("Hello, World!\n");return 0;}2. 编写一个C语言程序,要求输出两个整数的和。
#include <stdio.h>int main() {int a, b, sum;printf("请输入两个整数:");scanf("%d %d", &a, &b);sum = a + b;printf("两个整数的和为:%d\n", sum);return 0;}3. 编写一个C语言程序,要求输出一个整数的平方。
#include <stdio.h>int main() {int num, square;printf("请输入一个整数:");scanf("%d", &num);square = num * num;printf("该整数的平方为:%d\n", square);return 0;}4. 编写一个C语言程序,要求输出1到10的所有整数。
#include <stdio.h>int main() {int i;for (i = 1; i <= 10; i++) {printf("%d ", i);}printf("\n");return 0;}5. 编写一个C语言程序,要求输出1到10的所有整数的和。
#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 10; i++) {sum += i;}printf("1到10的所有整数的和为:%d\n", sum);return 0;}6. 编写一个C语言程序,要求输入一个字符串并输出该字符串。
专升本c语言历年试题及答案文库
专升本c语言历年试题及答案文库专升本C语言历年试题及答案文库一、选择题1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义字符型变量的关键字是()。
A. intB. charC. floatD. double答案:B二、填空题1. C语言中,用于定义字符串的字符数组的声明方式是:char str[20] = "Hello"; 其中数组的长度是()。
答案:202. 在C语言中,使用()关键字可以定义一个函数。
答案:void 或者 int 或者其他类型三、简答题1. 简述C语言中指针的概念。
答案:指针是一种变量,它存储了另一个变量的内存地址。
通过指针,程序可以间接访问和修改变量的值。
2. 解释C语言中的数组和指针的关系。
答案:在C语言中,数组名可以被当作指向数组第一个元素的指针。
因此,数组和指针密切相关,指针可以用来遍历数组。
四、编程题1. 编写一个C语言程序,实现求两个整数的和。
答案:```c#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two numbers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100], reversed[100];printf("Enter a string: ");gets(str);for (int i = 0; str[i] != '\0'; i++) {reversed[i] = str[strlen(str) - 1 - i];}reversed[strlen(str)] = '\0';printf("Reversed string: %s\n", reversed);return 0;}```五、论述题1. 论述C语言在现代编程语言中的地位和作用。
c语言专升本真题及答案解析
c语言专升本真题及答案解析一、选择题(每题2分,共20分)1. 下列哪个选项是C语言的关键字?A. defineB. typedefC. myvarD. alloftheabove2. C语言中,哪个运算符用于计算两个整数的乘积?A. +B. -C. *D. /3. 在C语言中,以下哪个语句用于定义一个整型变量?A. int var;B. var int;C. define int var;D. int = var;4. 下列哪个选项是C语言中合法的数组声明?A. int numbers[];B. int numbers[10] = {0};C. int numbers = 10;D. Both A and B5. C语言中,哪个函数用于计算两个数的和?A. sum()B. add()C. calculate()D. There is no built-in function for this.6. 在C语言中,哪个关键字用于定义一个函数?A. functionB. defC. methodD. void7. 下列哪个选项表示C语言中的逻辑与操作?A. &&B. ||C. !D. &8. C语言中,哪个语句用于结束一个循环?A. endB. breakC. continueD. stop9. 在C语言中,哪个关键字用于声明一个指针变量?A. pointerB. refC. *D. ptr10. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. Both A and C二、填空题(每题2分,共20分)11. 在C语言中,使用________关键字可以定义一个结构体。
12. 一个C语言程序的执行从________函数开始。
13. 使用________运算符可以对两个变量进行位运算。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言精编100题一、单选题1.由C语言编写的代码程序( )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母B. 中划线C. 数字字符D. 下划线3.下列选项中,不能用作标识符的是( )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( )A. longB. _2TestC. 3DmaxD. A.dat5.以下不能定义为用户标识符的是( )A. MainB. _0C. _intD. sizeof6.下列定义变量的语句错误的是( )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159.以下选项中,不能作为合法常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’13.下列运算符中优先级最高的运算符是( )( )A. <=B. =C. %D. &&A. ==B. /C. =D. >=14.以下程序的输出结果是( )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 1D. 015.在C语言中,以下非法的表达式是( )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+116.在C语言中,以下非法的赋值语句是( )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;17.表达式3.6-5/2+1.2+5%2的值是( )A. 4.3B. 4.8C. 3.3D. 3.818.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )A. 3B. 0C. 9D. -1219.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10B. 20C. 40D. 3020.以下程序的输出结果是( )( )( )( )( )⑴ main(){ int i=10,j=1;printf("%d,%d\n",i--,++j);}A. 9,2B. 10,2C. 9,1D. 10,1⑵ main(){ int a=12,b=12;printf("%d %d\n" ,--a,++b);}A. 10 10B. 12 12C. 11 10D. 11 13⑶ main(){ int x=023;printf("%d\n",--x);}A. 17B. 18C. 23D. 24⑷ main(){ int x=10,y=10;printf("%d %d\n",x--,--y);}A. 10 10B. 9 9C. 9 10D. 10 9⑸ main(){ int i=010,j=10;printf("%d,%d\n",++i,j--);}A. 11,10B. 9,10C. 010,9D. 10,921.以下程序的输出结果是( )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10022.以下程序的输出结果是( )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k++B. k+=1C. ++kD. k+124.以下程序的输出结果是( )main(){ int x,y,z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z); }A. 2,3,3B. 2,3,2C. 2,3,1D. 2,2,125.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )A. 1B. 2C. 3D. 426.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( )A. 0B. 1C. 2D. 427.以下程序的输出结果是(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}()A. k=11,k=12,k=11B. k=11,k=13,k=13C. k=11,k=013,k=0xbD. k=11,k=13,k=b(2) main(){ int k=17; printf("%d,%o,%x\n",k,k,k); }()A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是()main(){ int a;float b,c;scanf("%2d%3f%4f\n",&a,&b,&c);printf("a=%d,b=%f,c=%f\n",a,b,c);}A. a=98,b=765,c=4321B. a=10,b=432,c=8765C. a=98,b=765.000000,c=4321.000000D. a=98,b=765.0,c=4321.029.设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
以下所示的输入形式中正确的是(注:□代表空格字符)( )A. 10□X□20□Y<回车>B. 10□X20□Y<回车>C. 10□X<回车>D. 10X<回车>20□Y<回车> 20Y<回车>30.以下程序的输出结果是( )#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d\n",MA(1+a+b));}A. 6B. 8C. 10D. 1231.以下程序的输出结果是( )#define M(x,y,z) x*y+zmain(){ int a=1,b=2,c=3;printf("%d\n",M(a+b,b+c,c+a)); }A. 19B. 17C. 15D. 1232.以下程序段的输出结果是( )#define MIN(x,y) (x)<(y)?(x):(y)main(){ int i=10,j=15,k;k=10*MIN(i,j);printf("%d\n",k);}A. 15B. 100C. 10D. 15033.设a=1,b=2,c=3,d=4,则表达式a<b?a:c<d?a:d的结果是( )A. 4B. 3C. 2D. 134.以下程序段的输出结果是( )main(){ int x=5;if(x++>5) printf("%d\n",x);else printf("%d\n",x--);}A. 4B. 5C. 6D. 735.有以下程序main(){ int n=4;while(n--)printf("%d ",--n);}程序执行后的输出结果是( )A. 2 0B. 3 1C. 3 2 1D. 2 1 036.有以下程序main(){ int y=10;while(y--); printf("y=%d\n",y); }程序执行后的输出结果是( )A. y=0B. y=-1C. y=1D. while构成无限循环37.有以下程序{ int i;for(i=0;i<3;i++)switch(i){ case 0: printf("%d",i);case 1: printf("%d",i);default: printf("%d",i);}}程序执行后的输出结果是( )A.000112 B. 012 C. 012020 D. 12038.以下叙述中正确的是( )A. 构成C程序的基本单位是函数B. 可以在一个函数中定义另一个函数C. main()函数必须放在其它函数之前D. 所有被调用函数一定要在调用之前进行定义39.以下说法中正确的是( )A. C语言程序总是从第一个函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分40.以下程序的输出结果是( )int fun(int x){ int p;if(x==0||x==1) p=3;else p=x-fun(x-2);return p; }main(){ printf("%d\n",fun(7)); }A. 7B. 3C. 2D. 041.以下数组定义中错误的是( )A. int x[][3]={0};B. int x[2][3]={{1,2},{3,4},{5,6}};C. int x[][3]={{1,2,3},{4,5,6}};D. int x[2][3]={1,2,3,4,5,6};42.以下能正确定义二维数组的是( )A. int a[][3];B. int a[][3]={2*3};C. int a[][3]={};D. int a[2][3]={{1},{2},{3,4}};43.以下程序的输出结果是( ){ int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*(p+2));}A. 3B. 4C. 1D. 244.以下程序的输出结果是( )main(){ int a[]={1,2,3,4,5,6,7,8,9,10},*p=a;printf("%d\n",*p+9);}A. 0B. 1C. 10D. 945.以下程序的输出结果是( )printf("%d\n", *p+*q); }. 16 B. 10 C. 8 D. 646.设有char array[]="China";则数组array所占的空间字节数为( )A. 4B. 5C. 6D. 747.在C语言中,对于以下定义正确的叙述为( )char x[]="abcdefg";char y[]={'a','b','c','d','e','f','g'};A. 数组x和数组y等价B. 数组x和数组y的长度相同C. 数组x的长度大于数组y的长度D. 数组x的长度大于数组y的长度48.以下不能正确进行字符串赋初值的语句是( )A. char str[5]="good!";B. char str[]="good!";B. char *str="good!"; D. char str[5]={‘g’,‘o’,‘o’,‘d’};49.以下程序的输出结果是( )main(){ char str[]="ABCD",*p=str;printf("%d\n",*(p+4)); }A. 68B. 'D'C. 0D. '0'50.以下程序的输出结果是( )main(){ char str[]="aeiou",*p=str;printf("%c\n",*p+4)); }A. oB. uC. eD. f二、填空题51.一个C源程序至少应该有一个函数。