(考生必须将答案做在前面的答题纸上!!)
试题一(28分,每小题4分)
解答下列各小题,把解答写在答卷的对应栏内。
1)试写出下列数学表达式的c语言表达式。
2)满足关系式’a’≤ch≤’z’的c语言表达式是。
a、(65≤ch)&&ch≤90b、ch>=’a’||z’>=ch
c、’a’≤ch≤’zd、!(ch<’a’||z’>ch)
3)设a=1;b=2;c=3;x=0;执行下面程序段后x的值是。
if (aelse x=3;
4)设有如下定义:
int a[ ]3] =
int (*p)[3]= a;
请写出printf(“%d”, p+ 1 ) 2 ))定位的行和列,以及输出结果。
5)下面的程序运用字符串指针,输出结果是
#include <>
main()
char *language=
unsigned c;
c=strcmp(language[1],language[3]);
printf("%d",c);}
a)0b)正数c)负数d)程序错。
6)下面的程序含有宏定义,它的运行结果是
#include ""
#define sqr(x) x*x
void main()
int a=100,k=1,m=2;
a/=sqr(k+m)/ sqr(k+m);
printf(“%d”,a);
7)设下列括号内的数都是二进制整数,请写出位运算的结果(分别用二进制和十进制数表示)。
试题二(12分)
读程序,把程序(或程序段)的输出结果写在答题纸的对应栏内。
1)[程序2.1]
#include <>
main()
int a=
int n=0, *p;
p=a+1;
n+=*p++)
n+=(p)++
n+=*p);
n+=+p);
printf(“n=%d, a=d, %d, %d, %d”, n, a[0], a[1], a[2], a[3]);
2) [程序2.2]
int sumadd( int func, int data )
return sum;
main()
试题三(12分)
改错。下面程序中都有三个错误,按原来程序的要求,纠正错误,并以“将第x行改为xxx”的形式进行解答,将解答写在答题纸的对应栏内。**的左边的“##2” …附加的行号。
[程序3.1] (本程序有3个错)。
1.以下程序用于输出第x个字符串的第x个字符,例如:第一个字符串的第一个字符,第二个字符串的第二个字符,…,本题3个错)。
##include <>
#2 void strselect(char *strs,int n, char *dest)
##8 main()
##10 char rst[81];
#11 strselect(strs, rst);
#12 printf(“%s”, rst);
#[程序3.2] (本题有3个错)
2. 下面程序用于输出数组a中指定第col列的全部元素。
##define n 4
#2 void printcol(int *p[n],int row,int col)
##8 main()
#9 ,col;
#10 int row=sizeof(a)/sizeof(a[0])/n;
#11 clrscr();
#12 do
#13 while (col<0||col>n-1);
#15 printcol(a,row,col);
#试题四(27分)
按指定的要求,写出程序段或函数。把解答写在答题纸的对应栏内。
1. (1)输入一个摄氏温度,要求调用名为ctof的函数,求出相应的华氏温度。公式为[c+32', altimg':
w': 93', h': 43'}]输出2位小数。
2)函数f获得十进制正整数n为实参数后,返回值是n的各数位上数字的和(例如,数字123的和就是6),试编程或写出关键程序段。
3)将一个乱序数组中的所有元素进行降序排列,(冒泡法、选择法等皆可)试编程或写出关键程序段。
试题五(12分)
阅读下列程序说明和相应的c**,把应填入其中 (n) 处的c**写在答题纸的对应栏内。每空2分。
[程序5.1] 利用指针技术,从键盘上输入3×4的二维数组中任一元素的下标,求出该元素与首元素相差的字节数(假设采用float类型数据)。
#include <>
#define n 4
main()
float a[ ]n]=;
float (*p
int i,j,size;
clrscr();
pprintf("input i,j of a[i,j] =n");
scanf("%d,%d",&i,&j);
size=(*p+isizeof(float);
printf("the size of =%d",size);
程序5.2] 以下程序可以把从键盘上输入的十进制数(long型)以二进制~十六进制任一制式的形式输出,请填空。
#include <>
main()
char b=
int c[64],d,i=0,base;
long n;
printf("enter a number :");scanf("%ld",&n);
printf("enter new base :");scanf("%d",&base);
do while
printf("transmite new base:");
for (-i;i>=0;--i)
printf("");
试题六(9分)
阅读下列程序说明和相应的c**,把应填入其中 (n) 处的c**写在答题纸的对应栏内,每空3分。
6.1源程序]下面的程序是利用插入排序法对输入的n个整数按从小到大排序。插入排序的基本思想:
将数组元素分为已排序和未排序部分;从第二个元素起,与前面已排好序的元素进行比较(第一次将a[1]与a[0]比较);若当前为i元素,则与前面已排好序的i-1个元素进行比较,若比j元素大,则插在j元素的后面。
#define n 10
main()
int i, j, temp, a[n];
for( i=0; iscanf("%d", a[i]);
for( i=1; i { temp保留要插入的元素*/
for(j=i-1j>=0; j--
a[j+1]=a[j找要插入的位置,同时将大于a[i]的元素往后移*/
j++;a[j
for( i=0; iprintf("%6d", a[i] )
C语言程序设计期末考试试题
一 单项选择题 30分 1.下列不属于算法应该具有的特性是 a.确定性 b.有穷性 c.可行性 d.有零个或者多个输入。2.以下不正确c语言标识符是 b.abc c.bc 3.计算机能直接执行的程序是 a.源程序 b.目标程序 c.汇编程序 d.可执行程序。4.以下运算符优先级最高的是 a.b.c....
C语言程序设计期末考试试卷
学号 姓名 分数 一 选择题 1 14题,每题1分 15 36题,每题2分。共58分 1 以下非法的赋值语句是。a n i 2,i b j c i 1 d x j 0 2 设a和b均为double型变量,且a 5.5 b 2.5,则表达式 int a b b的值是。a 6.500000 b 6 c ...
《C语言程序设计》期末考试试卷
c语言程序设计 期末考试试卷。txt机会就像秃子头上一根毛,你抓住就抓住了,抓不住就没了。我和你说了10分钟的话,但却没有和你产生任何争论。那么,我们之间一定有个人变得虚伪无比!过错是短暂的遗憾,错过是永远的遗憾。相遇是缘,相知是份,相爱是约定,c语言程序设计 c语言程序设计 期末考试试卷。txt机...