C语言试卷1
2024年3月青少年软件编程C语言等级考试试卷一级真题及答案

2024年3月青少年软件编程C语言等级考试试卷一级真题(答案)分数:100 题数:5一、编程题(共5题,共100分)。
1.倒序输出。
依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
时间限制:1000。
内存限制:65536。
输入:一行4个整数a、b、c、d,以空格分隔。
0<a,b,c,d<108。
输出:一行4个整数d、c、b、a,整数之间以一个空格分隔。
样例输入:样例输出:参考答案:2.足球联赛积分。
在足球联赛里,一个球队赢下一场比赛得到3个积分,打平一场比赛得到1个积分,输掉比赛得到0分。
现已知一个球队在整个联赛里的比赛情况,求该球队最终的积分。
时间限制:1000。
内存限制:65536。
输入:三个整数x,y,z,以空格分开,分别表示这个球队赢下的比赛场数,打平的比赛场数,输掉的比赛场数。
(0≤x,y,z≤40)。
输出:一个整数,表示该球队最终的积分。
样例输入:样例输出:提示:63=19*3+6*1+4*0。
参考答案:3.苹果和虫子。
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。
虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?时间限制:1000。
内存限制:65536。
输入:输入仅一行,包括n,x和y(均为整数)。
输出:输出也仅一行,剩下的苹果个数。
样例输入:样例输出:提示:是要求完整的苹果数。
参考答案:4.整数的个数。
给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。
写程序计算给定的k个正整数中,1,5和10出现的次数。
时间限制:10000。
内存限制:65536。
输入:输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
输出:输出有三行,第一行为1出现的次数,,第二行为5出现的次数,第三行为10出现的次数。
样例输入:样例输出:参考答案:5.求满足条件的3位数。
国家二级C语言机试(程序设计基础、C语言概述)-试卷1

国家二级C语言机试(程序设计基础、C语言概述)-试卷1(总分:68.00,做题时间:90分钟)一、选择题(总题数:34,分数:68.00)1.结构化程序设计的基本原则不包括()。
(分数:2.00)A.多态性√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2.在面向对象方法中,不属于"对象"基本特点的是()。
(分数:2.00)A.一致性√B.分类性C.多态性D.标识唯一性解析:解析:对象有如下一些基本特点:标识唯一性、分类性、多态性、封装性、模块独立性好。
所以选择A)。
3.面向对象方法中,继承是指()。
(分数:2.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制√解析:解析:继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。
广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。
4.结构化程序所要求的基本结构不包括()。
(分数:2.00)A.顺序结构B.GOTO跳转√C.选择(分支)结构D.重复(循环)结构解析:解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。
5.定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
(分数:2.00)A.-369B.369 √C.0.369D.整数集合{1,2,3,4,5}解析:解析:只有B)选项369可以用无符号整数来表示和存储。
A)选项-369有负号,选项C)0.369是小数都不能用无符号整数类存储。
选项D)是一个整数集合得用数组来存储。
6.下列选项中不属于结构化程序设计原则的是()。
(分数:2.00)A.可封装√B.自顶向下C.模块化D.逐步求精解析:解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用goto语句,所以选择A。
2024年6月青少年软件编程C语言等级考试试卷一级真题

2024年6月青少年软件编程C语言等级考试试卷一级真题分数:100 题数:51.奇迹(20分)。
经典电影《阿甘正传》有句台词,说:(奇迹每天都发生)。
本题就请你直接在屏幕上输出这句话。
输入:本题没有输入。
输出:在一行中输出。
样例输入:无。
样例输出:2.九牛一毛(20分)。
这是一道脑筋急转弯题:猪肉一斤15元,鸡肉一斤20元,那么一毛钱能买多少头牛?答案是:9——因为“九牛一毛”。
本题就请你按照这个逻辑,计算一下N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。
输入:输入在一行中给出一个不超过1000的正整数N,即以“元”为单位的货币量。
输出:在一行中顺序输出N块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。
三个数字都取整数,其间以1个空格分隔,行首尾不得有多余空格。
样例输入:样例输出:3.题A除以B(20分)。
给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。
输入:输入在第一行给出两个整数A和B(-100≤A,B≤100),数字间以空格分隔。
输出:在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为“Error”。
输出的商应保留小数点后2位。
4.进化论(20分)。
在“一年一度喜剧大赛”上有一部作品《进化论》,讲的是动物园两只猩猩进化的故事。
猩猩吕严说自己已经进化了9年了,因为“三年又三年”。
猩猩土豆指出“三年又三年是六年呐”。
本题给定两个数字,以及用这两个数字计算的结果,要求你根据结果判断,这是吕严算出来的,还是土豆算出来的。
输入:输入第一行给出一个正整数N,随后N行,每行给出三个正整数A、B和C。
其中C不超过10000,其他三个数字都不超过100。
输出:对每一行给出的三个数,如果C是A×B,就在一行中输出“Lv Yan”;如果是A+B,就在一行中输出“Tu Dou”;如果都不是,就在一行中输出“zhe du shi sha ya!”。
《C语言程序设计》综合练习试卷(一)

《C语言程序设计》综合练习试卷(一)试题一判断题 (每题1分,共10 分)(用T表示正确、F表示不正确) 1.C的任何类型数据在计算机内部都是以二进制形式存储的。
2.按格式符“%d”输出float类型变量时,截断小数位后取整输出。
3.字符数组中字符串可以整体输入输出。
4.传值调用的形参只有在被调用时,才被创建(分配存储单元)。
5.C语言中数组名是指针常量。
6.结构体类型中的各成员项数据类型可以不相同。
7.函数必须有返回值,否则不能使用函数。
8.C程序执行总是从第一个函数开始。
9.可以用关系运算符对字符串进行大小比较。
10.For循环只能用于循环次数已确定的场合。
试题二单选题(每题1分共15分)从A)、B)、C)、D)四个选项中,选出正确的一项。
1.以下程序运行后,输出结果是#include"stdio.h"void main( ){ char s[10]="abcde",*p;p=s+2;printf("%s \n",p);}A) cde B)字符c的ASCII码值 C)字符c的地址 D)出错2.对下面函数f,写出f(f(3))的值。
int f(int x){ static int k=0;x+=k--;return x;}A) 5 B) 3 C) 2 D) 43.以下程序运行后,输出结果是#define PT 5#define S(x) PT*x#include"stdio.h"void main( ){ int a=1,b=2;printf ("%d\n",S(a+b));}A) 15 B) 7 C) 8 D) 无正确答案4. 若有 float a[3][4]; 正确的引用第3行第1列的元素是A) **(a+2) B) *(*a+2) C) a[3][1] D) a[3][0]printf("%.1f,%d\n",10./4,10/8);的输出是A) 2.5, 1.25 B) 2.5, 1 CA) int a[ ]; B)int n=5,a[n];C) int n, a[n]={1,2,3,4,5}; D) int a[10/2];7.若有定义:struct person { char name[9]; int age; } ;person st[10]={{"john",17},{"paul",19},{"Mary",18}};能输出字母M的语句是A) printf("%c",st[2].name);B) printf("%c",st[3].name[1]);C) printf("%c",st[2].name[1]);D) printf("%c",st[2].name[0]);8.不能把字符串:“Hello!”赋给数组b的语句是A) char b[10]={'H','e','l','l','o','!','\0'};B) char b[10];b="Hello!";C) char b[10];strcpy(b,"Hello!");D) char b[10]="Hello!";9.若有 int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则表达式值为6的是A)*p+6 B)*(p+6) C)*p+=5 D)p+510. 已知:int *p,m=5, n; 正确的程序段是A) p=&n; scanf(" %d",&p); B) p=&n; scanf(" %d", *p);C) scanf("%d",&n); *p=n; D) p=&n; *p=m;11. 下面程序的运行结果是:#include"stdio.h"void main( ){ int x[4]={ 2,4,6,8},*p, **pp;p=x;pp=&p;printf("%d",*p);printf("%3d",**pp);}A) 4 4 B) 2 4 C) 2 2 D) 4 612.下面程序执行后a的值是#include"stdio.h"void main( ){ int a,k=4,m=6,*p1=&k,*p2=&m;a=p1!=&m;printf("%d\n",a);}A)4 B)1 C)0 D)运行时出错,a无定值13.下列语句序列中,能够将变量u、s中最大值赋给变量t的是A) if (u>s) t=u; t=s; B) t=s; if (u>s) t=u;C) if (u>s) t=s; else t=u; D) t=u; if (u>s) t=s;14. 若有 int a=7,b=12;则语句printf("%d",a&b);输出结果A) 19 B) 9 C) 5 D) 415.若有 FILE *fp; 以“只读”方式打开文本文件a:\aa.dat,下列语句中正确的是A) fp=fopen("a:\aa.dat","w");B) fp=fopen("a:\aa.dat","r");C) fp=fopen("a:\\aa.dat","w");D) fp=fopen("a:\\aa.dat","r");试题三阅读程序题( 每题4分,共24分)写出读下列程序的输出结果1. #include<stdio.h>void main(){ char ch;for(ch='a';ch<'f'; ch++){ putchar(ch-32);putchar(ch);}}2. #include"stdio.h"void main(){ int i;for( i=1;i<=4;i++){ if ((i%3)==0) { printf("$"); continue;} else printf("*");printf("#");}}3. #include "stdio.h"void main(){ int i;for(i=1;i<5;i++)switch(i%5){ case 5: printf(" 5");case 3: printf(" 3");case 1: printf(" 1");default: printf("%2d",i);}}4. #include"stdio.h"void main(){ int x[10];int t,i,j,m=1;for(i=0;i<10;i++){ m=-m;x[i]=m*i;}for(i=1;i<10;i++){ t=x[i];for(j=i-1; j>=0; j--)if(t>x[j]) break;else x[j+1]=x[j];x[j+1]=t;}for(i=0;i<10;i++) printf("%3d",x[i]);}5. #include<stdio.h>void main(){ void swap1(int x ,int y );void swap2(int *x,int *y);void swap3(int &x,int &y);int a1,b1,a2,b2,a3,b3;a1=a2=a3=10;b1=b2=b3=5;swap1(a1,b1);swap2(&a2,&b2);swap3(a3,b3);printf("a1=%d b1=%d\n",a1,b1);printf("a2=%d b2=%d\n",a2,b2);printf("a3=%d b3=%d\n",a3,b3);}void swap1(int x,int y){ int t;t=x;x=y;y=t; }void swap2(int *x,int *y){ int t;t=*x; *x=*y; *y=t; }void swap3(int &x,int &y){ int t;t=x; x=y; y=t; }6.struct node{int num;node *next;};int fun( node *h){ int s,n=0,i;node *p=h ;while(p!=NULL){ for(s=0,i=1;i<p->num;i++)if ((p->num)%i==0) s+=i;if (s==p->num) n++;p=p->next;}return n;}写出执行语句“printf(“%d\n”,fun(head));”的输出结果。
《C语言程序设计》试题1及答案

《C语言程序设计》试题一 (1)一、填空题 (1)二、选择题 (2)三、读程序题 (5)四、程序填空题 (6)五、编程题 (7)《C语言程序设计》试题一答案 (10)《C语言程序设计》试题一一、填空题1、C语言中基本的数据类型有:整形、字符型、实型。
2、C语言中普通整型变量的类型说明符为int。
4、执行下列语句int a=8; a+=a-=a*a; 后,a的值是-112 。
5、有如下语句:char A[ ]={”I am a student”}; 该字符串的长度是11 ,A[3]= m 。
6、符号”a”和’a’的区别是“a”是字符串常量‘a’是字符常量。
7、所谓“指针”就是一个变量的地址。
“&”运算符的作用是求地址。
“*”运算符的作用是表示定义了一个指针。
8、有如下输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,从键盘输入数据的正确形式应是1,3,2二、选择题1、设整型变量a为5,使b不为2的表达式是( C )。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:12、为了避免嵌套的条件分支语句if-else的二义性,C语言规定:C程序中的else总是与( C )组成配对关系。
A. 缩排位置相同的ifB. 在其之前未配对的ifC. 在其之前未配对的最近的ifD.同一行上的if3、以下程序的输出结果是( D )。
int x=10,y=10;printf(“%d %d\n”,x--,--y);A. 10 10B. 9 9C. 9 10D.10 94、设A为存放(短)整型的一维数组,如果A的首地址为P,那么A中第i 个元素的地址为(不)。
A.P+i*2 B. P+(i-1)*2 C. P+(i-1) D. P+i5、选出下列标识符中不是合法的标识符的是(D)。
A. hot_doB. cat1C. _priD. 2ab6、以下程序的输出结果是(A)。
c语言期末考试练习题1(含答案)

一、单项选择题(6小题,每小题3分,共18分)1、在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是A、externB、registerC、autoD、static2、下面4个选项中,是合法转义字符的选项是( )。
A、'\"B、'\'C、'\018'D、'\\0''\\' '\017' '\f' '\101''\n' '\''' 'xab' 'x1f'3、下面4个选项中,是正确的八进制数或十六进制数的选项是( )。
A、–10B、0abcC、0010D、0a120x8f –017 –0x11 ––011 0xc 0xf1 –0xa4、以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )A、# define POWER(x) □□x * xB、# define POWER(x) □□(x) * (x)C、# define POWER(x) □□(x * x)D、# define POWER(x) □□((x) * (x))5、以下程序段( )x= –1;do{ x=x*x;} while (!x);A、是死循环B、循环执行二次C、循环执行一次D、有语法错误6、下面程序的运行结果是( )# include <stdio.h>int main( ){ int i,j,x=0;for (i=0;i<2;i++){ x++;for(j=0;j<=3;j++){ if (j%2) continue;x++;}x++;}printf ("x= %d \n",x);return 0;}A、x=4B、x=8C、x=6D、x=12二、填空题(7小题,每小题3分,共22分)1、下面程序段的运行结果是( )。
C语言 程序设计基础试题一及答案
《程序设计基础》考试试卷一班级姓名学号____________一、选择题(20分)1.算法具有五个特性,以下选项中不属于算法特性的是(A)有穷性(B)简洁性(C)可行性(D)确定性2.以下选项中可作为C语言合法常量的是(A)-80. (B)-080 (C) (D)3.以下叙述中正确的是(A)用C语言实现的算法必须要有输入和输出操作(B)用C语言实现的算法可以没有输出但必须要有输入(C)用C程序实现的算法可以没有输入但必须要有输出(D)用C程序实现的算法可以既没有输入也没有输出4.以下不能定义为用户标识符是(A)Main (B) _0 (C) _int (D) sizeof5.以下选项中,不能作为合法常量的是(A) (B) (C)+4 (D)6.数字字符0的ASCII值为48,若有以下程序main(){char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);} 程序运行后的输出结果是(A)3,2 (B)50,2 (C)2,2 (D)2,507.有以下程序main(){int m=12,n=34;printf("%d%d",m++,++n); printf("%d%d\n",n++,++m);}程序运行后的输出结果是(A) (B) (C) (D)8.有以下语句:int b;char c[10];,则正确的输入语句是A)scanf("%d%s",&b,&c); B) scanf("%d%s",&b,c);(C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);9.有以下程序main(){int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); } 若想从键盘上输入数据,使变量M中的值为123,N中的值为456,P中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 78910.有以下程序main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b); }程序运行后的输出结果是A)6,1 B)2,1 C)6,0 D)2,011.有以下程序main(){int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是(A)1 2 3 (B)2 3 4 (C)2 2 3 (D)2 3 312.若整型变量a、b、c、d中的值依次为:1、4、3、2。
c语言试卷和答案1
s=s+f;
printf(“%.0f #”, s);
}
}
程序2
#include <stdio.h>
void main()
{ long fun (long number);
printf(“%ld\n”, fun(-974));
}
long fun(long number)
(5) 运算符 “+”不能作为单目运算符。
(6) 如果运算符 “*”和 “/”都是右结合的,这表达式10*6/5的值是10。
(7) s(s-a)(s-b)(s-c)是合法的C语言表达式。
(8) 表达式!!6的值是6。
(9) 表达式~(~2<<1)的值是5。
(28)str[k]=str[k]-‘A’+ ‘a’
4.(29)ss=s
(30)s-ss
四、程序阅读题
程序1 1 # 3 # 21 #
程序2 4 # 47 # 479 # -479
程序3 IF YOU FAIL TOP
五、程序设计题(略)
}while(month>=1 || month<=12);
B)do{ scanf(“%d”, &month);
}while(month>=1 && month<=12);
C)do{ scanf(“%d”, &month);
}while(month<1 || month>12);
else
b=3;
printf(“%d”, b);
A)3 B)2 C)1 D)0
C语言程序设计模拟试题1(附答案)
C语言程序设计模拟试题1(附答案)《C语言程序设计》模拟试卷一一、单项选择题(每题2分,共30分)1、下列有关C语言的叙述中错误的是()。
A) C语句必须以分号结束B) 任何一个C程序中有且只有一个主函数C) 复合语句在语法上可被看作一条语句D) C程序中对数据的任何操作都可由运算符实现2、以下不能定义为用户标识符的是()。
A) MAIN B) _HJ C) 2ong D) LINE13、下列符号中用来表示C语言中的回车换行的是()。
A) \r B) \n C) \b D) \t4、如有如下定义:int a=1,则语句printf(“%d,%d”, a, ++a);的运行结果为()。
A) 1, 1 B) 1, 2 C) 2, 2 D) 2, 15、已知ch为字符型变量,下面表达式中正确的是()。
A) ch=’\xff ’B) ch=’\ff ’C) ch=’ ff ’D) ch=” ff ”6、以下能正确定义一维数组的是()。
A) int a[5]={0,1,2,3,4,5}; B) int a[5]=”012345”;C) char a[ ]=”012345”; D) char a[5]={0,1,2,3,4,5};7、以下语句中能正确定义变量并赋初值的是()。
A) char c=65; B) float f=f+1.1;C) double x=12.3e3.6; D) int m=n=2.0;8、在执行下列程序时输入:1357924,则程序的运行结果为()。
main( ){ int x, y;scanf(“%2d%2d”,&x,&y);printf(“%2d”,x*y); }A) 13 B) 1357 C) 74 D) 7419、执行下列程序段后输出的结果是()。
x = 9;while (x > 7){ printf(“*”); x- -; }A) **** B) *** C) ** D) *10、设char str1[10] = “ABCDE”, str2[10] = “xyz”;则执行语句printf(“%d”, strlen(strcpy(str1, str2))); 后的输出结果是()A) 9 B) 8 C) 5 D) 311、若用数组名作为函数调用的实参,则传递给形参的是()A) 数组的首地址 B) 数组第一个元素的值C) 数组中全部元素的值 D) 数组元素的个数12、在C程序中,若未在函数定义时说明函数类型,则函数默认的类型为()A)void B)double C)int D)char13、下面不能正确进行字符串赋值操作的语句是( )A) char s[5]={"ABCD"}; B) char s[5]; s="ABCD";C) char *s;s="ABCDEF"; D) char *s="ABCD";14、设有说明int s[5]={1,3,5,7,9}; int *p=s; 则下列表达式中值为3的是 ( )A)++p B)++(*p) C) *(++p) D) *(p+=2)15、下面程序的输出结果是()int m=13;int fun( int x, int y){ int m=3;return( x*y-m); }main( ){ int a=7,b=5;printf(“%d\n”, fun(a,b)/m); }A) 1 B) 2 C) 3 D) 10二、判断(每空1分,共10分)1、C语言有三种结构化程序设计方法,分别为顺序结构、选择结构和循环结构。
C语言试卷含答案
C语言试卷含答案一、单选题(共10题,每题2分,共20分)1. 下列哪个关键字不属于C语言的关键字?A. ifB. floatC. breakD. while答案:B2. 在C语言中,下列运算符中优先级最高的是:A. +B. *C. =D. &答案:B3. 以下哪种循环结构在循环体执行前就对循环条件进行判断?A. for循环B. while循环C. do-while循环答案:C4. 以下哪个函数库是用来进行数学运算的?A. stdio.hB. string.hC. math.hD. ctype.h答案:C5. 下列哪个运算符是用来进行指针访问的?A. *B. &C. .D. :答案:C6. 以下哪种数据类型可以存储整数和小数?A. intB. floatC. char答案:B7. 下列哪个函数可用于将字符串转换为整数?A. atoi()B. itoa()C. atof()D. sprintf()答案:A8. 在C语言中,以下哪个关键字用于定义一个常量?A. constB. staticC. externD. volatile答案:A9. 以下哪种运算符是用来进行逻辑或操作的?A. &&B. ||C. !答案:B10. 下列哪个文件打开模式适用于读写模式?A. "r"B. "w"C. "a"D. "r+"答案:D二、填空题(共5题,每题4分,共20分)1. C语言中,sizeof运算符返回的是所指数据类型的__________。
答案:字节大小2. 下列语句中,会将字符串s2的内容复制到字符串s1中的是__________。
strcpy(s1, s2);答案:strcpy3. 在C语言中,字符串使用__________来表示。
答案:字符数组4. 在C语言中,__________是用于声明变量的关键字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf(“%c\n”,++*str);
}
程序的输出结果是
1
1
3
3
5
3) #include <stdio.h> main() { int x[ ]={1,2,3}; int s,i,*p; s=1; p=x; for(i=0;i<3;i++) s*=*(p+i); printf(“%d\n”,s); }
printf(“ ”); for(j=1;j<=7-2*i;j++)
printf(“*”); printf(“\n”); }
2分
/*双引号内为一个空格*/ 2分
}
3、动物园购进了一批桃子,猴子当天吃了一半多一个,以后每天猴子都吃了前一天 剩下的一半多一个。编写一函数,求 n 天后,猴子一共吃了多少个桃子。要求:n 作 形参,其值由主调函数传递得到。
程序的运行结果是 6 4) #include <stdio.h>
#include <string.h> void fun(char *w,int m) {
char s,*p1,*p2; p1=w; p2=w+m-1; while (p1<p2)
{ s=*p1; *p1=*p2; *p2=s;p1++;p2--;}}
程序的运行结果是 13,13,13
6分
得分 评阅人 三、 程序填空(每空最多只能填一条语句) (每题 6 分,共 24 分)
1、下面的程序输出 3―100 之间的所有素数。
#include <stdio.h>
main()
{ int i,j;
for(i=3;i<=100;i++)
{ for(j=2;j<=i-1;j++)
A)int;
B)int *;
C) (int *);
D)(*int );
10) 有 int a[2][3]={2,4,6,8,10,12};则能正确表示元素地址的是 _A___。
A)*(a+1);
B)*(a[1]+2);
C)a[1]+3;
D)a[0][0];
题号 1
2
3
4
5
6
7
8
9
10
答案
得分 评阅人
} 程序的运行结果是 aabcced
2) #include <stdio.h>
main()
{
char *str=”12345”;
printf(“%c\n”,*str);
printf(“%c\n”,*str++);
printf(“%c\n”,*++str);
printf(“%c\n”,(*str)++);
4) 已知 char s[10],*p=s;下列语句中,错误的是哪个__B___
A)p=s+5;
B)s=p+5;
C)s[2]=p[4];
D)*p=s[0];
5) 对下列字符串的定义中,不对的是 _A___。 A)char str[7]=“FORTRAN”; B)char str[ ]=”FORTRAN”; C)char *str=”FORTRAN”; D)char str[ ]={‘F’,’O’,’R’,’T’,’R’,’A’,’N’,’0’};
{ int *temp;int k;
temp=&k ; 2 分
*temp=*pointerx;
*pointerx=*pointery ;
2分
*pointery=*temp;
}
得分 评阅人 四、 程序设计 (共 26 分,第一题 10 分,第二、第三题各 8 分)
1、 对数组中的所有元素求和,要求用递归的方法求解。
100
Hale Waihona Puke 签名得分得分 评阅人 一、 择题(每题 2 分,共 20 分),将答案填入后面的表格中。
1) 已知 int a,*p=&a;则下列语句中,不正确的是__C___ A)scanf(“%d”,&a); B)scanf(“%d”,p); C)printf(“%d”,a); D)printf(“%d”,*p);
第 3 页 共 7页
6分 6分 6分
main()
{
char a[ ]=” dfgthyh”;
fun(a,strlen(a));
puts(a);
}
程序的运行结果是 hyhtgfd
6分
5) #include <stdio.h> main() { int a=12; int*p; int **pp; pp=&p; p=&a; a++; pirntf(“%d,%d,%d”,a,*p,**pp); }
6) 已知 int a[3][4],*p=a;
p+=6;
那么 p 所指向的元素下面那个相等_D___。
A)*(a+6);
B)*(&a[0]+6);C)*(a[1]+2);
D)*(&a[0][0]+6);
第 1 页 共 7页
7) 已知:int a[]={1,2,3,4};
*p=&a[1];
则执行语句 y=(*--p)++;之后变量 y 的值为_A___。
gets(s);
for(i=j=0;s[i]!=’\0’;i++)
if (s[i]!=’c’) s[j++]=s[i] ;
4分
s[j]= ‘\0’ ; 4 分
puts(s);
}
3、下面的 swap 函数实现对两个参数所指向的数进行交换。
swap( int * pointerx ,int *pointery) 4 分
5分
{
int result;
if(n==1) result=a[1];
else result=sum(a,n-1)+a[n];
return result;
}
第 5 页 共 7页
2、2、打印出以下图形。 *
*** ***** *******
*****
***
*
#include <stdio.h>
main()
A)1;
B)2;
C)3;
D)4;
8) 函数的功能是交换变量 x 和 y 中的值,且通过正确调用返回交换的结果。能正确 执行此功能的函数是_D_。
A) funa(int *x, int *y) { int *p; *p=*x;*x=*y;*y=*p; }; B) funa(int x,int y)
{ int temp; temp=x; x=y; y=temp; }
南昌大学 2007~2008 学年第二学期期末评分标准
试卷编号:
( C)卷
课程编号:
课程名称: 高级语言程序设计考试形式: 闭卷
适用班级:管理科学类 07 姓名:
学号:
班级:
学院: 信息工程学院 专业:
考试日期:
题号 一 二 三 四 五 六 七 八 九 十 总分 累 分 人
题分 20 30 24 26
2) main(agrc,agrv)中,参数 agrv 的正确形式是_A____. A)char *agrv[]; B)char agrv[][]; C)char agrv[]; D)char *agrv;
3) 说明语句“int *(*p)();”的含义是_D___。 A)p 是—个指向 int 型数组的指引 B)p 是指针变量,它构成了指针数组 C)p 是—个指向函数的指针,该函数的返回值是一个整型 D)p 是一个指向函数的指针,该函数的返回值是一个指向整型的指针
#include <stdio.h>
main()
5分
{
int sum(int a[],int n);
int b[11]={0,1,2,3,4,5,6,7,8,9,10};
int m=10;
int s;
s=sum(b,6);
printf("s=%d\n",s);
}
int sum(int a[],int n)
第 6 页 共 7页
int total(int n) { int day,x1,x2; day=n; x2=1; while(day>0) { x1=(x2+1)*2; x2=x1; day--; } printf(“total=%d\n”,x1); }
4分 4分
第 7 页 共 7页
C)funa(int *x,*y) { *x=*y; *y=*x;}
D)funa(int *x,int *y) {*x=*x+*y;
*y=*x-*y; *x=*x-*y; }
9) 已 知 语 句 : int *p; 则 下 列 动 态 申 请 一 个 空 间 的 方 法 里 , 正 确 的 是
p=_C_malloc(sizeof(int));
if(i%j==0) break ;
4分
if(j>=i) printf(“%4d ”,i) ; /*这里输出的就是一个素数
*/
4分
}
}
2、下面的程序是将字符串 s 中的所有的字符‘c’删除。 #include <stdio.h> main() { char s[80]; int i,j;
第 4 页 共 7页
二、 读程序给结果(每题 6 分,共 30 分)