南京晓庄学院—C语言期末考试复习提纲_南京晓庄学院期末考试

2020-02-27 其他范文 下载本文

南京晓庄学院—C语言期末考试复习提纲由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“南京晓庄学院期末考试”。

习题一

1.以下常量中正确的是。

A.’abc’ B.’x123’ C.3.145E-1.2 D.”a”

2.设有“int a;”,以下不能正确表达数学关系10

。A.1010&&a=15)3.以下程序段的输出结果是

。int a=0,b=4,k=2;k=a+1>0||(++a

5.以下所列语句中,合法的语句是。

A.a=1,b=2 B.++a;C.a=a+1=5;D.y=int(a);6.以下所列字符常量中,不合法的是。

A.’xff’ B.’65’ C.’$’ D.’x1a’

7.设有定义“float y=3.45678;int x;”,则以下表达式中能实现将y中数值保留小数点后2位,第3位四舍五入的表达式是

。A.y=(y*100+0.5)/100.0 B.x=y*100+0.5,y=x/100.0 C.y=y*100+0.5/100.0 D.y=(y/100+0.5)*100.0 8.以下程序段输出结果是

。int a=10,b=11,c=12,s;s=a++

习题二

1.以下关于if语句的错误描述是

。A.条件表达式可以是任意的表达式

B.条件表达式只能是关系表达式或逻辑表达式 C.条件表达式的括号不可以省略

D.与else配对的if语句是其之前最近的未配对的if语句 2.以下叙述中不正确的是。

A.一个变量的作用域完全取决于变量说明语句的位置 B.外部变量可以在函数以外的任何位置定义

C.内部变量的生存期只限于本次函数调用,无法将内部变量的值保存至函数的下一次调用 D.用static说明一个外部变量是为了限制其他编译单位的引用 3.以下程序的输出结果是。

main(){ extern int x;printf(”%d”,x+=2);fun1(2);} int x=1;

{int x,*y;y=fun(&x);„} int *fun(int *a){int *t;*a=99;t=a;return t;} A.无确切的值 B.形参a的地址

C.主函数中变量x的地址 D.fun函数中变量t的地址 3.[程序] main(){ int s,p[9]={1,2,3,4,5,6,7,8,9};printf(”n%d”,add(p,5));} add(int *p,int n){ if(n==1)return *p;else return *p+add(p+1,n-1);} 程序输出结果是

。4.[程序] int *swap(int *a, int *b){ int *p;p=a;a=b;b=p;return a;} main(){ int x=3,y=4,z=5;swap(swap(&x,&y),&z);printf(”%d,%d,%d”,x,y,z);} 程序输出结果是

。5.[程序] fun(int n,int *s){ int f1,f2;if(n==1||n==2)*s=1;else { fun(n-1,&f1);fun(n-2,&f2);*s=2*f1+f2+1;printf(”n%d,%d”,f1,f2);} } main(){ int x;fun(4,&x);printf(”nx=%d”,x);} 程序运行时输出的第一行是

,第二行是

,最后一行是

。6.如有以下定义

int y[4][4]={1,2,3,4,5,6,7,8,9,10},*py1=y[1],(*py2)[4]=y;则不能正确引用值为7的数组元素的表达式是。

fun(p,0,3);fun(p+3,1,6);for(i=0;i

,第二行是。

习题四

1.设有基类型相同的两个指针变量,则不能对它们进行

运算。

A.+ B.struct s { int a;int *b;};int x0[]={110,120},x1[]={210,220};struct s x[]={{100},{200}},*p=x;x[0].b=x0;x[1].b=x1;A.*p->b B.(++p)->a C.*(p++)->b D.*(++p)->b 8.设有“char s[]=”Program”,*p=s;”,则以下叙述中正确的是

。A.数组s的内容与指针变量p中的内容相同 B.数组s的长度与strlen(p)的值相等 C.p[5]的值等于s[5]的值 D.sizeof(s)等于sizeof(*p)9.若有定义语句“static char str[4][20]={”thank”, ”you”, ”very”, ”much!”};”, 则str数组中存储’’的数组元素有

个。10.以下程序输出结果是。

main(){ enum color{RED=5,BLUE,WHITE=0,BLACK};char *colorname[]={”red”,”blue”,”white”,”black”};printf(”%s”,colorname[BLACK]);}

习题五

1.函数delstr功能是:在字符串str中删除所有出现的子串str1。[程序] char *delstr(char *str,char *str1){ char *p,*p1,*q1;int i;if(*str==’’||*str1==’’)return str;p=str;while(*p!=’’){ p1=p,q1=str1;while(*p1==*q1 && *q1!=’’)

;if(p!=p1 && *q1==’’){ for(i=0;*p1!=’’;i++,p1++)

=*p1;

=’’;} p++;}

;} 2.设结点的数据结构定义如下:

typedef struct p{ int x,y;struct p *next;}PNODE;

{ int j,t;if(n==1)return;for(j=1;j

){ t=x[0];x[0]=x[j];x[j]=t;} sort(x+1,);} 5.已知某链表中结点的数据结构定义如下:

struct node { int x;struct node *next;};函数find_del功能是:在参数head指向的链表中查找并删除x值最大的结点,如有多个相同的x值最大的结点,删除第一个结点,保存该结点的地址到pm指向的指针变量中,函数返回链表首结点的指针。

struct node *find_del(struct node *head,struct node **pm){ struct node *p1,*p2,*pmax,*pre;if(head==NULL)return NULL;pmax=

;p2=p1=pmax;while(p1){ if(p1->x>){ pre=p2;pmax=p1;} p2=p1;p1=p1->next;} if(pmax==head)head=pmax->next;else

=pmax->next;

=pmax;return head;}

编程题

1.熟悉Visual C++编程环境,编写第一个C语言程序,输出以下信息: * * * * * * * * * * * * * * * Very good!* * * * * * * * * * * * * * *27 36

5.验证素数。

6.打印Fibonacci数列。(1 1 2 3 5 8 13 „)

1.有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,„,求出这个数列的前20项之和。

0

5.已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组中

6.输出以下的杨辉三角形(要求输出10行)。1 1 1 1 2 1 1 1 1.2

5.写一函数建立一个有3名学生数据的单向动态链表。

6.写一函数以删除动态链表中指定的结点。

1、输入两个正整数m和n,求其最大公约数和最小公倍数

#include int main(){

int p,r,n,m,temp;

printf(“请输入两个正整数n,m:”);scanf(“%d,%d,”,&n,&m);

if(n {

temp=n;n=m;

43、求100~200之间的全部素数

#include #include

int main(){ int n,k,I,m=0;for(n=101;n=k+1){ Printf(“%d”,n);m=m+1;} If(m%10==0)printf(“n”);} printf(“n”);return 0;}

4、10个整数用冒泡法由小到大排序 #include int main(){ int a[10];int i,j,t;printf(“输入10个数字:n”);for(i=0;ia[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t;} printf(“排序后的数是:n”);for(i=0;i

66、用打擂台法,有一个3*4的矩阵,求出其中最大的那个元素的值和它所在的行号和列号 #include int main(){ int i,j,row=0,colum=0,max;int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;imax){ max=a[i][j];row=i;colum=j;} printf(“max=%dn row=%dn colum=%dn”,max,row,colum);return 0;}

7、求一个3*3的整型矩阵对角线元素之和

#include

int main(){

int a[3][3],sum=0;

int i,j;

printf(“enter data:n”);

for(i=0;i

for(j=0;j

for(i=0;i

printf(“sum=%6dn”,sum);

return 0;}

int a[N]={100,98,95,93,87,85,77,75,67,65,57,55,47,45,37};printf(“input number to look for:”);scanf(“%d”,&x);

left=0;right=N-1;

while(left

else if(x

right=mid-1;}

if(left

printf(“%d在数组中的第%d个数.n”,x,mid+1);else

printf(“数组中没找到%d.n”,x);

return 0;}

10、编一程序,将两个字符串连接起来,不要用strcat函数

#include int main()

{ char s1[80],s2[40];

int i=0,j=0;

printf(“input string1:”);scanf(“%s”,s1);

printf(“input string2:”);scanf(“%s”,s2);

while(s1[i]!='')i++;

while(s2[j]!='')s1[i++]=s2[j++];

0

{void inverse(char str[]);char str[100];

printf(“input string:”);

gets(str);inverse(str);

printf(“inverse string:%sn”,str);return 0;}

void inverse(char str[]){char t;int i,n;

n=strlen(str);

for(i=0;i

str[i]=str[n-1-i];str[n-1-i]=t;}

}

14、编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格、和其他字符的个数,在主函数中输入字符串以及输出上述的结果

#include

int letter,digit,space,others;int main()

{void count(char []);

char text[80];

printf(“input string:n”);gets(text);printf(“string:”);puts(text);letter=0;digit=0;space=0;others=0;count(text);

printf(“nletter:%dndigit:%dnspace:%dnothers:%dn”,letter,digit,space,others);

return 0;}

void count(char str[]){int i;

for(i=0;str[i]!='';i++)

if((str[i]>='a'&& str[i]='A' && str[i]

p2++;} *p2='';}

16、有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生的信息。#include struct Student { int num;char name[20];float score;} int main(){ struct 5},{10110,”sun”,100}};struct Student temp;const int n=5;int i,j,k;printf(“The order is:n”);for(i=0;istu[k].score)k=j;temp=stu[k];stu[k]=stu[i];stu[i]=temp;} for(i=0;i

for(i=0;i

stu[maxi].score[0],stu[maxi].score[1],stu[maxi].score[2],stu[maxi].avr);return 0;}

《南京晓庄学院—C语言期末考试复习提纲.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
南京晓庄学院—C语言期末考试复习提纲
点击下载文档
相关专题 南京晓庄学院期末考试 提纲 南京 期末考试 南京晓庄学院期末考试 提纲 南京 期末考试
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文