小作业吧 关注:43贴子:397
  • 3回复贴,共1

西安电子科技大学2022学年下学期 高级语言程序设计(C)大作业

只看楼主收藏回复

1、表示关系 x≤y≤z 的 c 语言表达式为
A.(X<=Y)&&(Y<=Z)   B.(X<=Y)AND(Y<=Z)
C.(X<=Y<=Z)      D.(X<=Y)&(Y<=Z)
2、以下程序的输出结果是
int a=12,b=12;
printf("%d %d\n",--a,++b);
A.10 10   B.12 12   C.11 10   D.11 13
3、以下的 for 循环
for(x=0,y=0; (y!=123)&&(x<4); x + + );
A.是无限循环   B.循环次数不定   C.执行 4 次   D.执行 3 次4、有以下
程序
char a[]="programming",b[]="language";
char *p1,*p2;
int i;
p1=a;p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))
C.printf 是 C 语句,#define 不是
printf("%c",*(p1+i));
输出结果是
A.gm   B.rg   C.or   D.ga
5、以下说法中正确的是
A.#define 和 printf 都是 C 语句   B.#define 是 C 语句,printf 不是
6、下面的程序
int x=3;
do
D.#define 和 printf 都不是 C 语句
{
printf("%d\n",X-=2);
} while(!(--x));
A.输出的是 1  B.输出的是 1 和-2  C.输出的是 3 和 0  D.是死循环
7、下面能正确进行字符串赋值操作的语句是
A.char s[5]={"ABCDE"};   B.char s[5]={'A'、'B'、'C'、'D'、'E'};
C.char *s;s="ABCDEF";   D.char *s; scanf("%s",s);
8、以下程序的输出结果是
int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i<4;i+=2)printf("%d ",p[i]);
A.5 2   B.5 1   C.5 3   D.9 7
9、若要求在 if 后一对圆括号中表示 a 不等于 0 的关系,则能正确表示这一关系的表
达式为
11、若 fp 是指向某文件的指针,且已读到该文件的末尾,则 C 语言函数 feof(fp)的
A.a<>0   B.!a   C.a=0   D.a
10、下述对 C 语言字符数组的描述中错误的是
A.字符数组可以存放字符串
B.字符数组中的字符串可以整体输入、输出
C.可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值
D.不可以用关系运算符对字符数组中的字符串进行比较
返回值是
A.EOF   B.-1   C.非零值   D.NULL
12、设 p1 和 p2 是指向同一个 int 型一维数组的指针变量,k 为 int 型变量,则不能
正确执行的语句是
A.k=*p1+*p2;   B.p2=k;   C.p1=p2;   D.k=*p1 *(*p2);
13、下面程序的输出是
int a=-1, b=4,k;
k=(a++<=0)&&(!(b--<=0));
printf("%d %d %d\n",k,a,b);
A.0 0 3   B.0 1 2   C.1 0 3   D.1 1 2
14、若 x 是整型变量,pb 是基类型为整型的指针变量,则正确的赋值表达式是
A.pb=&x   B.pb=x;   C.*pb=&x;   D.*pb=*x
15、设有 static char str[ ]="Beijing";
则执行语句 printf("%d\n", strlen(strcpy(str,"China")))后的输出结果为
int x=10,y=10,I;
for(i=0;x>8;
A.5   B.7   C.12   D.14
16、以下程序的输出结果是
y=++i)
printf("%d,%d ",x--,y);
A.10 1 9 2   B.9 8 7 6   C.10 9 9 0   D.10 10 9 1
17、设有如下函数定义:
int f(char *s)
{
char *p=s;
while(*p!='\0') p++;
return(p-s);
}
如果在主程序中用下面的语句调用上述函数,则输出结果为
printf("%d\n",f("goodbey!"));
A.3   B.6   C.8   D.0
18、若执行下面的程序时从键盘上输入 3 和 4,则输出是
int main()
{
int a,b,s;
scanf("%d %d",&a,&b);
s=a;
if(a<b)s=b;
s=s*s;
printf("%d\n",s);
}
A.14   B.16   C.18   D.20
19、下面四个选项中,均是 C 语言关键字的是:
A.auto enum include    B.swith typedef continue
C.signed union scanf    D.if struct type
20、有以下程序
viod fun (int a,int b,int c)
{a=456;b=567;c=678;}
int main()
{
二、判断题(每小题 3 分,判断对错占 1 分,给出解析占 2 分,共 21
int x=10,y=20,z=30;
fun (x,y,z);
printf("%d,%d.%d",x,y,z);
return 0;
}
输出结果是
A.30,20,10   B.10,20,30   C.456,567,678   D.678,567,456
分)
1、在 C 中,外部变量的隐含类别是自动存储类别。
答案:对
解析:隐含类别的变量是自动变量,auto省略。
2、实参和与其对应的形参共占用一个存储单元。
答案:错
解析:参数的传递方式是“单向值传递”,形参和实参各自有不同的存储单元。
3、在不得已的情况下(例如提高程序运行效率),才使用 goto 语句。
答案:错
解析:goto为无条件转向语句,可把程序控制转移到标号指定的语句处。一般有两个
用途:1.与if语句一同构成循环结构。2.退出多重循环。
4、条件表达式可以取代 if 语句,或者用 if 语句取代条件表达式。
答案:错
解析:条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个
分支都给同一变量赋值)时才能代替if语句。
5、函数中的静态变量在函数每次调用时,都会重新设置初值。
答案:错
解析:静态局部变量在其函数调用结束后仍然可以保留变量值。
6、全局变量都是静态存储。
答案:错
解析:静态存储区即全局数据区,用来存放程序的全局数据和静态数据。全局变量是存
放在静态存储区中的。普通全局变量不仅对文件中的所有函数都是可见的,而且能被其
他文件的函数所用;而static型的全局变量仅对其所在文件中定义处之后的函数是可见
的,不能被其他函数使用。
7、如果在所有函数定义之前,在函数外部已做了声明,则各个主调函数不必再做函数
原型声明。
答案:对
解析:在函数体外声明的函数可在声明之后直至该源文件结束的任何函数中
调用。
三、程序分析题(每空 0.5 分,共 19 分)
要求:读程序,填出表格中的数据。
1 、(10 空)
char fun(char ch)
{
if(ch= ='Z') ch= 'A';
else if(ch>='A'&& ch<='Y') ch=ch+1;
return ch;
}
输入 ch a A b B D @ 3 Y Z
返回 ch
fun 函数功能:
2、(15 空)
void sstrcpy(char *s,char *t)
{
{
*s= *t;s
++;
t++;
}
*s=0;}
int main( )
{
char str1[100],str2[]="abcdefgh";
sstrcpy(str1,str2);
printf("%s\n",str1);
return 0;
}
下标 0 1 2 3 4 5 6 7 8
*t a
str1[]
sstrcpy 函数功能:
3、(13 空)
从键盘上输入 1298
int n1,n2;
scanf("%d",&n2);
while(n2!=0)//(1)
{
n1=n2%10; //(2)
n2=n2/10; //(3)
printf("%d",n1);}
(1)n2 1298
(2)n1
(3)n2
程序输出
四、程序设计题(每小题 10 分,共 20 分)编程题要求:(1)先给出伪代码,然后再写出源码,重要变量和语句要加注释;(2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。1、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 的三次方+5 的三次方+3 的三次方。
2、编写函数 fun,函数的功能是:在字符串中所有数字字符前加一个$字符。例如,输入:A1B23CD45,则输出为:A$1B$2$3CD$4$5。


IP属地:河南1楼2022-10-26 23:21回复
    能发下答案吗


    2楼2022-11-20 11:47
    收起回复