2014专升本精通C语言精编100题(answer)
2014《C语言程序设计》专升本练习题

《C语言程序设计》专升本练习题(学习资料仅供练习)目录专升本《C语言》练习题一 (1)专升本《C语言》练习题二 (9)专升本《C语言》练习题三 (17)专升本《C语言》练习题四 (24)专升本《C语言》练习题五 (31)专升本《C语言》练习题六 (42)专升本《C语言》练习题七 (48)专升本《C语言》练习题八 (58)专升本《C语言》练习题九 (65)专升本《C语言》练习题十 (72)专升本《C语言》练习题一6 10专升本《C语言》练习题二专升本《C语言》练习题三一、单项选择题1. C语言源程序文件经过编译连接之后生成一个后缀为__C__的文件。
A.”.c”B.“.obj”C.“.exe”D.“.bas”2. 以下选项中不正确的整型常量是_C____。
A. 12LB. -10C. 1,900D. 123U3. 表达式___C___的值是0。
A.3%5B.3/5.0C.3/5D.3<54. 表达式!(x>0||y>0) 等价于__D___。
A.!x>0||!y>0B.!(x>0)||!(y>0)C.!x>0&&!y>0D.!(x>0)&&!(y>0)5. 若变量已正确定义并赋值,表达式__D____不符合C语言语法。
A.4&&3B.+aC.a=b=5D.int(3.14)6. 若变量已正确定义,执行语句scanf("%d%d%d ",&k1,&k2,&k3);时,___B___是正确的输入。
A.2030,40B.20 30 40C.20, 30 40D.20, 30,407. 执行语句printf(”__D____”, 2); 将得到出错信息。
A.%dB.%oC.%xD.%f8. 设变量定义为“int s[ ]="hello\nworld\n";”,则数组s中有__B__个元素。
2014C语言程序设计(含答案)

一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
C语言程序设计(专升本)试卷附答案

C语言程序设计开/闭卷:闭专业测绘工程班级室主任签字:一、1、以下叙述中正确的是A) C语言比其他语言高级B) C语言可以不用编译就能被计算机识别执行C) C语言以接近英语国家的自然语言和数学语言作为语言的表达形式D) C语言出现的最晚,具有其他语言的一切优点2、C语言中用于结构化程序设计的三种基本结构是A) 顺序结构、选择结构、循环结构B) if、switch、breakC) for、while、do-whileD) if、for、continue3、在一个C程序中A) main函数必须出现在所有函数之前B) main函数可以在任何地方出现C) main函数必须出现在所有函数之后D) main函数必须出现在固定位置4、下列叙述中正确的是A) C语言中既有逻辑类型也有集合类型B) C语言中没有逻辑类型但有集合类型C) C语言中有逻辑类型但没有集合类型D) C语言中既没有逻辑类型也没有集合类型5、下列关于C语言用户标识符的叙述中正确的是A)用户标识符中可以出现在下划线和中划线(减号)B)用户标识符中不可以出现中划线,但可以出现下划线C)用户标识符中可以出现下划线,但不可以放在用户标识符的开头D)用户标识符中可以出现在下划线和数字,它们都可以放在用户标识符的开头6、以下叙述中正确的是A)构成C程序的基本单位是函数B)可以在一个函数中定义另一个函数C)main()函数必须放在其他函数之前D)C函数定义的格式是K&R格式7、应用数据库的主要目的是A)解决数据保密问题B)解决数据完整性问题C)解决数据共享问题D)解决数据量大的问题8、一个C语言程序是由A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成9、请选出可用作C语言用户标识符的是A)void,define,WORDB)a3_b3,_123,IFC)FOR,--abc,CaseD)2a,Do,Sizeof10、下列各数据类型不属于构造类型的是A)枚举型B)共用型C)结构型D)数组型11、在16位C编译系统上,若定义long a;,则能给a赋40000的正确语句是A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L12、以下不正确的叙述是A)在C程序中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b 中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值13、sizeof(float)是A)一个双精度型表达式B)一个整型表达式C)一种函数调用D)一个不合法的表达式14、若x,i,j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为A)4B)16C)32D)5215、设有定义:int n=0,*p=&n,**q=&p,则下列选项中正确的赋值语句是A)p=1;B)*q=2;C)q=p;D)*p=5;16、以下叙述中正确的是A)C程序的基本组成单位是语句B)C程序中的每一行只能写一条语句C)简单C语句必须以分号结束D)C语句必须在一行内写完17、计算机能直接执行的程序是A)源程序B)目标程序C)汇编程序D)可执行程序18、以下关于宏的叙述中正确的是A)宏名必须用大写字母表示B)宏定义必须位于源程序中所有语句之前C)宏替换没有数据类型限制D)宏调用比函数调用耗费时间19、以下选项中正确的定义语句是A)double a;b; B) double a=b=7C)double a=7,b=7; D)double,a,b;20、以下不能正确表示代数式2ab/cd 的C语言表达式是A)2*a*b/c/d B)a*b/c/d*2C)a/c/d*b*2 D)2*a*b/c*d21、C源程序中不能表示的数制是A)二进制B)八进制C)十进制D)十六进制22、检查软件产品是否符合需求定义的过程称为A)确认测试B)集成测试C)验证测试D)验收测试23、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。
专升本c语言真题与答案解析

专升本c语言真题与答案解析C语言真题与答案解析在考试中,C语言是一个重要的科目,它是计算机领域最为基础的编程语言之一。
考生对于C语言的理解和掌握程度直接影响着他们在考试中的成绩。
为了帮助考生更好地备考和应对C语言考试,下面将提供一些常见的C语言真题,并给出详细的答案解析。
题目一:编写一个C语言程序,实现生成斐波那契数列的功能。
答案解析:斐波那契数列是指从第三个数开始,每个数都是前两个数之和的数列。
在C语言中,可以通过循环和条件判断语句来实现。
```c#include <stdio.h>void Fibonacci(int n){int a = 0, b = 1, i, c;printf("斐波那契数列前 %d 项为:\n", n);printf("%d ", a);printf("%d ", b);for(i = 3; i <= n; i++) {c = a + b;printf("%d ", c);a = b;b = c;}printf("\n");}int main(){int num;printf("请输入要生成斐波那契数列的项数:");scanf("%d", &num);Fibonacci(num);return 0;}```本题的答案解析是一个完整的程序,其中使用了循环、条件判断、变量和输入输出等C语言的基本语法和知识点。
通过运行这段代码,我们可以得到生成斐波那契数列的结果。
题目二:编写一个C语言程序,实现字符串逆序输出的功能。
答案解析:为了实现字符串的逆序输出,我们需要首先将字符串存储到一个字符数组中,然后通过循环遍历数组的元素,从最后一个元素开始逆序输出。
```c#include <stdio.h>#include <string.h>void reverseString(char str[]){int i, len;len = strlen(str);printf("逆序输出的结果为:");for(i = len-1; i >= 0; i--){printf("%c", str[i]);}printf("\n");}int main(){char input[100];printf("请输入一个字符串:"); gets(input);reverseString(input);return 0;}```本题的答案解析同样是一个完整的程序。
专升本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语言试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,不正确的是()。
A. C语言是一种高级编程语言B. C语言可以直接被计算机执行C. C语言具有结构化编程的特性D. C语言可以用于系统软件开发答案:B2. C语言中,用于定义变量的关键字是()。
A. varB. defineC. intD. let答案:C3. 下列选项中,不是C语言标准库函数的是()。
A. printfB. scanfC. strcpyD. strcat答案:D4. 在C语言中,以下哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = 'Hello';D. char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; 答案:A5. 下列关于C语言数组的描述中,正确的是()。
A. 数组下标从0开始B. 数组可以是多维的C. 数组的大小在定义时可以改变D. 数组可以存储不同类型的数据答案:B6. C语言中,用于实现循环结构的关键字是()。
A. forB. whileC. repeatD. do答案:A7. 下列选项中,表示逻辑与运算符的是()。
A. &&B. ||C. !D. =答案:A8. 在C语言中,用于定义函数的关键字是()。
A. functionB. defC. intD. void答案:D9. 下列关于C语言指针的描述中,正确的是()。
A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A10. 在C语言中,用于实现条件选择的关键字是()。
C语言经典编程100题(答案版)

C语言经典程序100题(答案版)【程序1】题目:企业发放的奖金根据利润提成。
利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。
注意定义时需把奖金定义成长整型。
2.程序源代码:1.#include"stdio.h"2.#include"conio.h"3.main()4.{5.long int i;6.int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;7.scanf("%ld",&i);8.bonus1100000*0.1;9.bonus2bonus1+100000*0.75;10.bonus4bonus2+200000*0.5;11.bonus6bonus4+200000*0.3;12.bonus10bonus6+400000*0.15;13.if(i<100000)14.bonus i*0.1;15.else if(i<200000)16.bonus bonus1+(i-100000)*0.075;17.else if(i<400000)18.bonus bonus2+(i-200000)*0.05;19.else if(i<600000)20.bonus bonus4+(i-400000)*0.03;21.else if(i<1000000)22.bonus bonus6+(i-600000)*0.015;23.else24.bonus bonus10+(i-1000000)*0.01;25.printf("bonus%d",bonus);26.getch();27.}【程序2】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。
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语言真题及答案解析C语言真题及答案解析近年来,随着社会的发展和对高素质人才的需求增加,考试成为许多人提升学历和职业发展的重要途径。
而在考试中,C语言成为了不可或缺的一部分。
以下将针对C语言真题进行解析,帮助广大考生更好地备考。
一、选择题解析1. 下列关于C语言程序的说明中,哪个是正确的?A. 函数的定义一定在主函数前面B. 函数的定义和主函数的定义可以随意排序C. 主函数的定义必须在函数的定义前面D. 函数的定义和主函数的定义不能分别放在不同的源程序文件中答案解析:选项C正确。
在C语言中,主函数的定义必须在函数的定义前面,否则编译器无法识别函数的声明,会报错。
2. 下列程序段执行后i的值为多少?int i = 5;do{--i;}while(i--);A. 1B. 2C. 3D. 4答案解析:选项D正确。
循环语句do-while先执行一次循环体,再判断条件是否成立。
在本题中,i的初始值为5,经过一次循环体后,i的值变为4。
然后条件判断i--,结果为4,再次执行循环体,i的值减1变为3。
此时i的值为3,满足循环条件,再次执行循环体,i的值为2。
然后条件判断i--,结果为2,再次执行循环体,i的值减1变为1。
此时i的值为1,满足循环条件,再次执行循环体,i的值为0。
然后条件判断i--,结果为0,再次执行循环体,i的值减1变为-1。
此时i的值为-1,不满足循环条件,循环结束。
所以最终i的值为4。
二、填空题解析1. 下列关于C语言程序的命令中,用于定义某个常量的关键字是__。
答案解析:const。
关键字const用于定义某个常量,表示该变量的值不能被修改。
2. 下列代码段中,第一个#的作用是__。
#include <stdio.h>答案解析:预处理命令。
#include是一个预处理命令,用于包含系统的标准输入输出头文件<stdio.h>。
三、编程题解析题目:编写一个C语言程序,输入一个正整数n,输出1到n之间所有能被3整除但不能被5整除的数。
专升本c语言模拟试题及答案

专升本c语言模拟试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 下列关于C语言函数的描述中,哪个是正确的?A. 函数可以没有返回值B. 函数必须有返回值C. 函数不能有参数D. 函数不能返回结构体答案:A3. 在C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案:A4. 下列关于指针的描述中,哪个是错误的?A. 指针可以指向任何类型的数据B. 指针可以作为函数的参数C. 指针可以作为函数的返回值D. 指针不能进行算术运算答案:D5. 在C语言中,以下哪个选项是正确的?A. 变量名区分大小写B. 变量名不区分大小写C. 变量名可以以数字开头D. 变量名可以包含空格答案:A6. C语言中,以下哪个选项是合法的数组声明?A. int arr[10];B. int arr[10] = {0};C. int arr = 10;D. int arr[] = {1, 2, 3};答案:A7. 下列关于C语言预处理指令的描述中,哪个是正确的?A. #include 用于包含库文件B. #define 用于定义宏C. #ifdef 用于条件编译D. 以上都是答案:D8. 在C语言中,以下哪个选项是正确的?A. switch语句不能嵌套B. switch语句可以嵌套C. switch语句中不能使用breakD. switch语句中可以使用continue答案:A9. 下列关于C语言中循环的描述中,哪个是错误的?A. for循环可以无限循环B. while循环可以无限循环C. do-while循环可以无限循环D. 循环中不能使用break语句答案:D10. 在C语言中,以下哪个选项是正确的?A. 变量的声明必须在函数的开始处B. 变量的声明可以在函数的任何地方C. 变量的声明必须在函数的结束处D. 变量的声明只能在函数的中间答案:B二、填空题(每题2分,共20分)1. 在C语言中,使用________运算符可以进行逻辑与运算。
C语言精编100题

高职升本计算机应用基础C语言精编100题精通学院计算机组编C语言精编100题一、单选题1.(1) 由C语言编写的代码程序( )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行(2) C语言源程序的扩展名为( )A. .objB. .cC. .exeD. .cpp2.(1) 按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( )A. 大写字母B. 中划线C. 数字字符D. 下划线(2) 下列选项中,不能用作标识符的是( )A. _1234_B. _1_2C. int_2_D. 2_int_(3) 以下选项中合法的用户标识符是( )A. longB. _2TestC. 3DmaxD. A.dat(4) 以下不能定义为用户标识符的是( )A. MainB. _0C. _intD. sizeof(5) 下列定义变量的语句错误的是( )A. int _int;B. double int_;C. char For;D. float US$;(6)以下选项中不合法的标识符是()A. printB. FORC. &aD. _00(7) 以下不合法的用户标识符是()A.j2_KEY B. Double C. 4d D. _8_(8) 以下C语言用户标识符,不合法的是()A. _1B. AaBcC. a_bD. a-b3.(1) 在C语言中,整型数据分为( )A. 二进制、八进制、十进制B. 二进制、十进制、十六进制C. 八进制、十进制、十六进制D. 二进制、八进制、十进制、十六进制(2) C源程序不能表示的进制为( )A. 八进制B. 二进制C. 十六进制D. 十进制4.(1) 在C语言中,合法的实型常数是( )A. 5E2.0B. E-3C. .2E0D. 1.3E(2) 在C语言中,合法的实型常数是( )A. 1.2E0.5B. 3.14159EC. 5E-3D. E15(3) 以下选项中,不能作为合法常量的是( )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e0(4) 以下不合法的数值常量是( )A. 011B. le1C. 8.0E0.5D. 0xabcd(5) 以下选项中,能用作数据常量的是( )A. o115B. 0118C. 1.5e1.5D. 115(6) 以下选项中,合法的一组C语言数值常量是( )A. 028B. 12.C. .177D. 0x8A.5e-3 OXa23 4e1.5 10,000-0xf 4.5e0 Oabc 3.e55.(1) 在C语言中,非法的字符常量是( )(2) 以下不合法的字符常量是( )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’(3) 以下选项不属于字符常量的是( )A. 'C'B. "C"C. '\xCC'D. '\072'(4) 以下选项中,非法的字符常量是A.‘\101’B.‘\65’C.‘\xff’D.‘\019’6.在C语言中,以下关于运算符叙述错误的是( )A. 在C语言中,逗号运算符的优先级最低B. 在C语言中,赋值运算符自右向左运算C. 在C语言中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算D. 在C语言中,++、--运算符可以改变变量的值7.下列运算符中优先级最高的运算符是( )( )A. <=B. =C. %D. &&A. ==B. /C. =D. >=8.(1) 以下程序的输出结果是( )main(){ int a=3,b=4; printf("%d\n",a<=b); }A. 3B. 4C. 1D. 0(2) 在C语言中,表达式10!=9的值为( )A. 0B. FalseC. 1D. True9.在C语言中,以下非法的表达式是( )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+110.在C语言中,以下非法的赋值语句是( )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;11.(1) 表达式3.6-5/2+1.2+5%2的值是( )A. 4.3B. 4.8C. 3.3D. 3.8(2) 若有定义语句:int x=12,y=8,z;,在其后执行语句z=0.9+x/y;,则z的值为( )A. 1.9B. 1C. 2D. 2.412.(1) 设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( )A. 3B. 0C. 9D. -12(2) 设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( )A. 10B. 20C. 40D. 30(3) 设有语句:int a=0;则执行语句 a+=(a=8);变量a的值是( )A. 0B. 8C. 16D. 2413.以下程序的输出结果是( )( )( )( )( )⑴ 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);}⑷ 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,914.以下程序的输出结果是( )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10015.以下程序的输出结果是( )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 316.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( )A. k++B. k+=1C. ++kD. k+117.以下程序的输出结果是( )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,118.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为( )A. 1B. 2C. 3D. 419.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( )A. 0B. 1C. 2D. 420.以下程序的输出结果是(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,1121.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是()main(){ int a;float b,c;scanf("%2d%3f%4f",&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=876522.(1) 设变量均已正确定义,若要通过scanf("%d%c%d%c",&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。
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=13 C) 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) 12 20、若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==14 C) 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) 2538、下列程序执行后的输出结果是________.#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 3 60、下面程序的运行结果是________.#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. 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语言基础知识试题及答案

专升本c语言基础知识试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在C语言中,以下哪个选项不是合法的变量名?A. _first_nameB. 123variableC. variable_nameD. int答案:B3. 下列哪个选项是正确的C语言注释方式?A. // this is a commentB. /* this is a comment */C. //* this is a commentD. /* this is a comment */答案:A4. C语言中,以下哪个选项是正确的字符串声明?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = "Hello", "World";D. char str[] = {"Hello"};5. 在C语言中,以下哪个选项是正确的函数声明?A. int function();B. int function(int x);C. int function;D. int function = 5;答案:B6. 下列关于C语言数组的描述,哪个是正确的?A. 数组的大小在声明时必须确定B. 数组的大小可以在运行时确定C. 数组的索引总是从1开始D. 数组可以存储不同类型的数据答案:A7. C语言中,以下哪个选项表示将变量x的值赋给变量y?A. x = y;B. y = x;C. x = y = 0;D. y = x = 0;答案:B8. 在C语言中,以下哪个选项是正确的文件包含指令?A. #include "stdio.h"B. #include <stdio.h>C. #include "stdio.h" and #include <stdio.h>D. #include "stdio.h" || #include <stdio.h>答案:B9. 在C语言中,以下哪个关键字用于定义一个指针?B. charC. *D. void答案:C10. 下列关于C语言函数的描述,哪个是正确的?A. 函数必须有返回值B. 函数可以有多个返回值C. 函数可以没有参数D. 函数必须有参数答案:C二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是________。
专升本C语言历年考试题及答案

专升本C语言历年考试题及答案XXX2005年专升本选拔考试《C语言程序设计》试卷(考试时间120分钟,总分100分)一、用C语言描述下列命题(共16分,每小题2分)1、a、b和c均为整型变量,a和b中有一个大于c。
2b b4ac的C语言表达式(注:sqrt( )为开方函数)。
2、数学公式:2a3、写出100内的自然数x,能被3或7整除的表达式。
4、写出判断字符变量ch是阿拉伯数字字符的表达式。
5、写出满足x<60或90≤x≤100的C语言表达式。
6、写出平面上的点(x,y)落在单位圆内的表达式。
7、数组p[10]的各元素用于保存指向char型的指针,写出该数组的定义。
8、有名为max的函数,其功能是对两个int型参数x、y 进行计算,返回其中的较大者,写出该函数的说明部分。
二、根据要求画出流程图或N-S图(共10分,每小题5分)1、用流程图或N-S图表示以下算法。
输入x的值,按以下函数计较y的值,并输出y的值。
2、画出打印以下图案的算法流程图或N-S图。
3、步伐浏览题(共20分,每题4分)1、# includevoid main( ) {int i,sum=0;for(i=1;i<=30;i++)if(i%3!=0) continue;else sum=sum+i;printf(“sum=%d\n”,sum);请叙述上面程序的功能,并写出程序的运行结果。
2、void main( ) {int a,b,x=1,y=1;scanf("%d%d",&a,&b);if (a>0)x=x+y;if (a<b)x=2*y;elseif (a==b)y=5;elsey=x+y;printf("x=%d,y=%d\n",x,y);假设输入为: 2-3,则程序运行后的输出结果为:3、void main() {int a[3][3]={2,4,6,8,10,12,14,16,18};int sum=0.i。
2014C语言程序设计(含答案)

一、写出下列程序段的运行结果(40分)1.(4分)char a= 'F'-'E',b= '\12',c=12,d;c = a<b<c;d =--a&& b++;printf("%d,%d,%d,%d",a,b,c,d);2.(4分)int a=2, b=5;printf("a=%%d,b=\\d,");b/=a;a+=a-b;printf("%d,%d",a,b);3.(4分)char a=256;printf("%d,",a++);a=(int)(13/5+1.4);printf("%d",a);4.(4分)int p[8]={11,12,13,14,15,16,17}; int i=0,j=0;while (i++<7) (第一次循环i=1)if (p[i]%2) j+=p[i];printf("%d\n",j);5.(4分)int a=3,b=5;void exchange(int a, int b){int t;t=a; a=b; b=t;printf("%d,%d\n", a, b);} int main(){exchange(a,b);printf("%d,%d\n",a,b);return 0;}6.(4分)void f(char ch){if (ch>'A'){f(ch-1);}putchar(ch);}int main(){f('D');return 0;}7.(4分)char str[10]="123456789"; int i;for (i=9; i>0; i/=2){str[i]=0;printf("%s\n",str);}8.(4分)struct {int x; int y; int z;}a[3] ={1,2,3,4,5,6,7,8,9};printf("%d,%d\n", a[1].x+a[2].y, a[1].y+a[2].z);9.(4分)int a[8]={1,2,3,4,5,6,7,8};int i=1, *p = a;while (p<a+8){p rintf("%d ",*p);p = p+i;i*=2;} 10.(4分)FILE *fp;int d=20150111;char c1,c2;char str[4];fp=fopen("a.tmp","w");fprintf(fp,"%d", d);fclose(fp);fp=fopen("a.tmp","r");c1=fgetc(fp);fgets(str, 4, fp);c2=fgetc(fp);fscanf(fp, "%d", &d);printf("%c,%s,%c,%d",c1,str,c 2,d);二、改错题(20分)以下程序实现:从键盘输入20个学生的成绩数据,将这些数据存到磁盘文件“stu.dat”上,并求这些学生的最差成绩。
精通学院C语言精编100题(answer)

C语言精编100题一、单选题1.由C语言编写的代码程序( B )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( B )A. 大写字母B. 中划线C. 数字字符D. 下划线3.下列选项中,不能用作标识符的是( D )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( B )A. longB. _2TestC. 3DmaxD. A.dat5.以下不能定义为用户标识符的是( D )A. MainB. _0C. _intD. sizeof6.下列定义变量的语句错误的是( D )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( C )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( C )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159.以下选项中,不能作为合法常量的是( B )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( C )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( C )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( A )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’13.下列运算符中优先级最高的运算符是( C )( B )A. <=B. =C. %D. &&A. ==B. /C. =D. >=14.以下程序的输出结果是( C )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 1D. 015.C语言中,以下非法的表达式是( D )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+116.在C语言中,以下非法的赋值语句是( B )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;17.表达式3.6-5/2+1.2+5%2的值是( D )A. 4.3B. 4.8C. 3.3D. 3.818.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( D )A. 3B. 0C. 9D. -1219.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( B )A. 10B. 20C. 40D. 3020.以下程序的输出结果是( B )( D )( B )( D )( B )⑴ 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.以下程序的输出结果是( A )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10022.以下程序的输出结果是( D )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )A. k++B. k+=1C. ++kD. k+124.以下程序的输出结果是( C )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的值为( C )A. 1B. 2C. 3D. 426.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( B )A. 0B. 1C. 2D. 427.以下程序的输出结果是(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}( D )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); }( D )A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是( C )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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言精编100题一、单选题1.由C语言编写的代码程序( B )A. 可直接执行B. 是一个源程序C. 经过编译即可执行D. 经过编译解释才能执行2.按照C语言规定的用户标识符命名规则,不能出现在标识符中的是( B )A. 大写字母B. 中划线C. 数字字符D. 下划线3.下列选项中,不能用作标识符的是( D )A. _1234_B. _1_2C. int_2_D. 2_int_4.以下选项中合法的用户标识符是( B )A. longB. _2TestC. 3DmaxD. A.dat5.以下不能定义为用户标识符的是( D )A. MainB. _0C. _intD.sizeof6.下列定义变量的语句错误的是( D )A. int _int;B. double int_;C. char For;D. float US$;7.在C语言中,合法的实型常数是( C )A. 5E2.0B. E-3C. 2E0D. 1.3E8.在C语言中,合法的实型常数是( C )A. 1.2E0.5B. 3.14159EC. 5E-3D. E159.以下选项中,不能作为合法常量的是( B )A. 1.234e04B. 1.234e0.4C. 1.234e+4D. 1.234e010.以下不合法的数值常量是( C )A. 011B. le1C. 8.0E0.5D. 0xabcd11.在C语言中,非法的字符常量是( C )A.‘\t’B.‘\17’C. "\n"D.‘\xaa’12.以下不合法的字符常量是( A )A.‘\018’B.‘\"’C.‘\\’D.‘\xcc’13.下列运算符中优先级最高的运算符是( C )( B )A. <=B. =C. %D. &&A. ==B. /C. =D. >=14.以下程序的输出结果是( C )main(){ int a=3,b=4;printf("%d\n",a<=b);}A. 3B. 4C. 1D. 015.C语言中,以下非法的表达式是( D )A. 0<=x<=100B. i=j==0C. (char)(65+3)D. x+1=x+116.在C语言中,以下非法的赋值语句是( B )A. j++;B. ++(i+1);C. x=j>0;D. k=i==j;17.表达式3.6-5/2+1.2+5%2的值是( D )A. 4.3B. 4.8C. 3.3D. 3.818.设有语句:int a=3;则执行了语句a+=a-=a*a;变量a的值是( D )A. 3B. 0C. 9D. -1219.设有语句:int x=10;则执行了语句x+=x-=x-x;变量x的值是( B )A. 10B. 20C. 40D. 3020.以下程序的输出结果是( B )( D )( B )( D )( B )⑴ 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.以下程序的输出结果是( A )main(){ int x=100,y=200;printf("%d\n",(x,y)); }A. 200B. 100C. 100 200 D)200 10022.以下程序的输出结果是( D )main(){ int x=10,y=3,z;printf("%d\n",z=(x%y,x/y));}A. 1B. 0C. 4D. 323.int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( A )A. k++B. k+=1C. ++kD. k+124.以下程序的输出结果是( C )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的值为( C )A. 1B. 2C. 3D. 426.设int x=-1;执行表达式++x||++x||++x||++x,x的值是( B )A. 0B. 1C. 2D. 427.以下程序的输出结果是(1) main(){ int k=11; printf("k=%d,k=%o,k=%x\n",k,k,k);}( D )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); }( D )A. 17,021,0x11B. 17,17,17C. 17,0x11,021D. 17,21,1128.运行时从键盘上输入9876543210<CR>(<CR>表示回车),则该程序的输出结果是( C )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。
以下所示的输入形式中正确的是(注:□代表空格字符)( D )A. 10□X□20□Y<回车>B. 10□X20□Y<回车>C. 10□X<回车>D. 10X<回车>20□Y<回车> 20Y<回车>30.以下程序的输出结果是( B )#define MA(x) x*(x-1)main(){ int a=1,b=2;printf("%d\n",MA(1+a+b));}A. 6B. 8C. 10D. 1231.以下程序的输出结果是( D )#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.以下程序段的输出结果是( A )#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的结果是( D )A. 4B. 3C. 2D. 134.以下程序段的输出结果是( C )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 )A. 2 0B. 3 1C. 3 2 1D. 2 1 036.有以下程序main(){ int y=10;while(y--); printf("y=%d\n",y); }程序执行后的输出结果是( B )A. y=0B. y=-1C. y=1D. while构成无限循环37.有以下程序main(){ 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 ) 000112A.011122 B. 012 C. 012020 D.12038.以下叙述中正确的是( A )A. 构成C程序的基本单位是函数B. 可以在一个函数中定义另一个函数C. main()函数必须放在其它函数之前D. 所有被调用函数一定要在调用之前进行定义39.以下说法中正确的是( C )A. C语言程序总是从第一个函数开始执行B. 在C语言程序中,要调用的函数必须在main()函数中定义C. C语言程序总是从main()函数开始执行D. C语言程序中的main()函数必须放在程序的开始部分40.以下程序的输出结果是( C )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.以下数组定义中错误的是( B )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.以下能正确定义二维数组的是( B )A. int a[][3];B. int a[][3]={2*3};C. int a[][3]={};D. int a[2][3]={{1},{2},{3,4}};43.以下程序的输出结果是( A )main(){ 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.以下程序的输出结果是( C )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.以下程序的输出结果是( B )main(){ 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. 16B. 10C. 8D. 646.设有char array[]="China";则数组array所占的空间字节数为( C )A. 4B. 5C. 6D. 747.在C语言中,对于以下定义正确的叙述为( 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 )A. char str[5]="good!";B. char str[]="good!";B. char *str="good!"; D. char str[5]={‘g’,‘o’,‘o’,‘d’};49.以下程序的输出结果是( C )main(){ char str[]="ABCD",*p=str;printf("%d\n",*(p+4)); }A. 68B. 'D'C. 0D. '0'50.以下程序的输出结果是( C )main(){ char str[]="aeiou",*p=str;printf("%c\n",*p+4)); }A. oB. uC. eD. f二、填空题51.一个C源程序至少应该有一个 main 函数。